題目描述:
輸入字符串s,輸出s中包含所有整數的最小和。
說明:字符串s,只包含 a-z A-Z ± ;
合法的整數包括:
1) 正整數 一個或者多個0-9組成,如 0 2 3 002 102
2)負整數 負號 – 開頭,數字部分由一個或者多個0-9組成,如 -0 -012 -23 -00023
輸入描述:
包含數字的字符串
輸出描述:
所有整數的最小和
示例1:
輸入
bb1234aa
輸出
10
示例2:
輸入
bb12-34aa
輸出
-31
說明:1+2+(-34) = -31
C++源碼:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <numeric>using namespace std;// 尋找字符串中的最小數字和
int findMinSum(const string& s) {int minSum = 0;int length = s.size();for (int i = 0; i < length; i++){if (s[i] >= '0' && s[i] <= '9') { int strEnd = i, sum = 0; while (strEnd < length && s[strEnd] >= '0' && s[strEnd] <= '9') {sum += s[strEnd] - '0';strEnd++;}if (i > 0 && s[i - 1] == '-') minSum -= stoll(s.substr(i, strEnd - i));elseminSum += sum; i = strEnd - 1;}}return minSum;
}int main() {string inputString;cin >> inputString;int result = findMinSum(inputString);cout << "最小和為: " << result << endl;system("pause");return 0;
}