求字符串中所有整数的最小和
标题:求字符串中所有整数的最小和 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限
输入字符串s,输出s中包含所有整数的最小和
说明
1. 字符串s,只包含 a-z A-Z +- ;
2. 合法的整数包括
1) 正整数 一个或者多个0-9组成,如 0 2 3 002 102
2)负整数 负号 - 开头,数字部分由一个或者多个0-9组成,如 -0 -012 -23 -00023
#include<iostream> #include<algorithm> using namespace std; int main() { string s; while (cin >> s) { int num = 0; int sum = 0; int flag = 1; for (int i = 0; i < s.length(); i++) { if (s[i] >= '0' && s[i] <= '9') { if (flag == -1) { num = num * 10 + s[i] - '0'; } else { sum = sum + s[i] - '0'; } } else { sum = num * flag + sum; num = 0; flag = 1; } if(s[i]=='-') { flag = -1; } } cout << sum << endl; } return 0; }
#include <iostream> #include <string> using namespace std; int isNum(char c) { if (c <= '9' && c >= '0') return 1; return 0; } int main() { int ans; string str; while (getline(cin,str)) { ans = 0; for (int i=0;i<str.length();i++) { if (isNum(str[i]) == 1) ans += str[i] - '0'; if (str[i] == '-') { int temp = 0; i++; while (isNum(str[i]) == 1) { temp = temp*10 + str[i] - '0'; i++; } i--; ans -= temp; } } cout << ans << endl; } return 0; }