题解 | #在字符串中找出连续最长的数字串#

在字符串中找出连续最长的数字串

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")

模拟就好了

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务