代码的掌控能力还是不太行 老是遗漏某种情况……
#include <iostream> #include <vector> #include <cctype> #include <algorithm> using namespace std; int main() { string s; cin >> s; vector<string> vec; string n; for(int i = 0; i < s.size(); ++i) { if(isdigit(s[i])) { n += s[i]; } else { if(i > 0 && isdigit(s[i-1])) { vec.push_back(n); n = ""; } } } //不要遗漏这一步 因为有可能数字字符串结尾 来不及push进去for循环就结束了 if(!n.empty()) vec.push_back(n); sort(vec.begin(), vec.end(), [](string a, string b) { return a.size() > b.size(); }); int l = vec[0].size(); for(int i = 0; i < vec.size(); ++i) { if(vec[i].size() == l) cout << vec[i]; else break; } cout << ',' << l << endl; return 0; }