华为2019秋招笔试题1
程序员文章站
2022-06-09 12:05:33
...
在一个字符串中,找出所有的整数并求和
题目描述:
给定一个字符串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;
}
代码的运行图:
上面是自己写的代码,如有错误,欢迎大家指出!