题解 | #在字符串中找出连续最长的数字串#
在字符串中找出连续最长的数字串
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")
模拟就好了
凡岛公司福利 737人发布