華為2019秋招筆試題1
阿新 • • 發佈:2019-02-13
在一個字串中,找出所有的整數並求和
題目描述:
給定一個字串str,求其中全部整數數字之和
輸入描述
1、忽略小數點,例如”A1.2”,認為包含整數1和2;
2、如果整數的左側出現字元 “-“,則奇數個認為是負整數,偶數個認為是正整數。
例如”AB-1CD- -2EF- - -3” ,認為包含整數-1、2和-3。
(注意:這裡的”-“與”-“間是連續的,沒有空格隔開)
輸出描述
輸出即為字串中所有整數數字之後。
#include<iostream>
using namespace std;
int main(){
int num[1000],n=0,m=0,result,p=0,size,sum=0;
string s;
cin>>s;
size=s.size();
while(n<size){
result=0;
if(s[n]>='0'&&s[n]<='9')
{
result=s[n++]-'0';
while(s[n]>='0'&&s[n]<='9'){
result=10*result+s[n]-'0';
n++;
}
if (p%2==1)//判斷"-"的個數
num[m++]=result*(-1);
else
num[m++]=result;
p=0;
}else{
if(s[n]=='-')
++p;
}
n++;
}
for(int i=0;i<m;i++)
sum+=num[i];
cout<<sum<<endl;
return 0;
}
程式碼的執行圖:
上面是自己寫的程式碼,如有錯誤,歡迎大家指出!