题解 | #在字符串中找出连续最长的数字串#
在字符串中找出连续最长的数字串
https://www.nowcoder.com/practice/2c81f88ecd5a4cc395b5308a99afbbec
细节很重要,哎,输出细节处理了半天
#include <string> #include <iostream> #include <vector> #include<algorithm> using namespace std; string s; int num = 0; bool flag = false; int main() { while (cin >> s) { vector<vector<string>>result(100); for (int i = 0; i < s.size(); i++) { if (s[i] >= '0' && s[i] <= '9') { num++; flag = true; } else if (flag && (s[i] < '0' || s[i]>'9')) { string ss = s.substr(i - num, num); result[ss.length()].push_back(ss); num = 0; flag = false; } } if (flag && (s[s.size() - 1] >= '0' && s[s.size() - 1] <= '9')) { string ss = s.substr(s.size() - 1 - num + 1, num); result[ss.length()].push_back(ss); num = 0; flag = false; } int n = result.size(); int size; for (int i = n-1; i >= 0; i--) { if (result[i].size() ==0)continue; else { size = result[i][0].size(); for (int j = 0; j < result[i].size(); j++) { cout << result[i][j]; } cout << ','; cout << size << endl; break; } } } return 0; }