求字符串中所有整数的最小和
标题:求字符串中所有整数的最小和 | 时间限制: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;
}

