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

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

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;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-03 18:22
投了几百份简历,专业和方向完全对口,都已读不回。尝试改了一下学校,果然有奇效。
steelhead:这不是很正常嘛,BOSS好的是即便是你学院本可能都会和聊几句,牛客上学院本机会很少了
点赞 评论 收藏
分享
06-19 19:06
门头沟学院 Java
码农索隆:别去东软,真学不到东西,真事
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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