欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

华为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;
}

代码的运行图:
华为2019秋招笔试题1
上面是自己写的代码,如有错误,欢迎大家指出!