题解 | #在字符串中找出连续最长的数字串#
在字符串中找出连续最长的数字串
https://www.nowcoder.com/practice/2c81f88ecd5a4cc395b5308a99afbbec
#include <algorithm> #include <cctype> #include <iostream> #include <vector> using namespace std; bool cmp(vector<int> a, vector<int> b) { return a[1] > b[1]; } int main() { string s; while(cin >> s) { vector<vector<int>> count; int i = 0; int j = 0; while(i < s.length()) { if(isdigit(s[i])) { j = i; while(j < s.length() && isdigit(s[j])) { j++; } count.push_back({i, j - i}); i = j; continue; } i++; } stable_sort(count.begin(), count.end(), cmp); int t = 0; while(t < count.size() - 1 && count[t][1] == count[t + 1][1]) { t++; } int k = 0; for(; k <= t; k++) { cout << s.substr(count[k][0], count[k][1]); } cout << "," << count[0][1] << endl; } return 0; } // 64 位输出请用 printf("%lld")
模拟就好了