1. 程式人生 > >華為2019秋招筆試題1

華為2019秋招筆試題1

在一個字串中,找出所有的整數並求和

題目描述:

給定一個字串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; }

程式碼的執行圖:
這裡寫圖片描述


上面是自己寫的程式碼,如有錯誤,歡迎大家指出!