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

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

http://www.nowcoder.com/practice/2c81f88ecd5a4cc395b5308a99afbbec

# include<iostream>
# include<string>
# include<vector>

using namespace std;

int main() {
    vector<string> mys;
    string s;
    while(cin >> s) {
        mys.push_back(s);
    }
    for(int i = 0; i <mys.size(); i++) {
        string str = mys[i];
        vector<pair<int, int>> record;
        int l = 0;
        int r = 0;
        while(r < str.size()) {
            while(r < str.size() && str[r] >= '0' && str[r] <= '9') {
                r++;
            }
            if(l < r) {
                record.push_back({l,r});
                l = r;
            }
            else {
                l++;
                r++;
            }
        }
        int length = 0;
        vector<int> left;
        for(int i = 0; i < record.size(); i++) {
            if(record[i].second - record[i].first >length) {
                while(!left.empty()) {
                    left.pop_back();
                }
                length = record[i].second - record[i].first;
                left.push_back(record[i].first);
            }
            else if(record[i].second - record[i].first == length) {
                left.push_back(record[i].first);
            }
        }
        string s;
        for(int i = 0; i < left.size(); i++) {
            s += str.substr(left[i], length);
        }
        cout<< s << ',' << length << endl;
    }
   
    
    system("pause");
    return 0;
}

全部评论

相关推荐

在瑞幸干两年,奥特曼都得闪灯
不知名的牛友:奥特曼每天只上3分钟班
点赞 评论 收藏
分享
头像 会员标识
05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
找工作时遇到的神仙HR
点赞 评论 收藏
分享
迷茫的大四🐶:自信一点,我认为你可以拿到50k,低于50k完全配不上你的能力,兄弟,不要被他们骗了,你可以的
点赞 评论 收藏
分享
06-25 21:00
门头沟学院 Java
多拆解背记一下当前的高频场景面试题,结合自己的项目经历去作答,面试通过率原来真的不会低!
牛客96559368...:小公司不就是这样的吗,面试要么是点击就送,要么就是往死里拷打,没有一个统一的标准。这个不能代表所有公司
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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