/*
1.输入字符串s输出s中包含所有整数的最小和,
说明:1字符串s只包含az,AZ,+,-,
2.合法的整数包括正整数,一个或者多个0-9组成,如:0,2,3,002,102
3.负整数,负号开头,数字部分由一个或者多个0-9组成,如-2,-012,-23,-00023
输入描述:包含数字的字符串
输出描述:所有整数的最小和
示例:
输入:
bb1234aa
输出
10
输入:
bb12-34aa
输出:
-31
说明:1+2-(34)=-31
*/
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
#include<iostream>
#include<stdlib.h>
#include<stack>
#include<vector>
#include<stdio.h>
#include<string>
using namespace std;
using namespace std;
class Solution
{
public:
int Min_Sum(string& s1)
{
int sum = 0, count = 0;
int tmp;
string st;
for (int i = 0; i < s1.size(); i++)
{
if (isdigit(s1[i]))
{
sum += (s1[i] - '0');
}
if (s1[i] == '-')//也可以把“-”号最先放进容器中。这是另一个方法。
{
i++;
//st += '-';
while (isdigit(s1[i]))
{
st += s1[i];
count++;
i++;
}
if (!st.empty())
{
int digit = stoi(st);
st.clear();
sum -= digit;
}
}
}
return sum;
}
};
int main()
{
Solution s;
string s1;
cin>> s1 ;
int sum = s.Min_Sum(s1);
cout << sum << endl;
return 0;
}
stoi()函数
字符串转整型
文章连接: https://zh.cppreference.com/w/cpp/string/basic_string/stol