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

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

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

模拟就好了

全部评论

相关推荐

点赞 评论 收藏
分享
lllllkin:感觉可以精简到一页简历,有些排版感觉不是必须的。 时间线越早的,你自己越熟悉的放前面。描述可以更精简些,一些问题解决感觉可以不用写具体技术栈,卖个关子,等面试官问。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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