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

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

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

全部评论

相关推荐

2024-11-28 22:27
已编辑
西南交通大学 Java
Kensley:交大的学弟,整体挺好的 稍微有点乱可以考虑做减法了 并发和java可以合一起,知识上补充一下Redis集群技术的死角,主从,Sentinel,Cluster。 大计基改成课程就行:《计算机网络》《操作系统原理》《数据结构》《算法》。 最重要的,项目还要再挖掘,要用【问题/场景】驱动开发,效果放在最后一句就行,“基于XXX/集成XXX实现XXX功能,【解决XXX问题】,效果XXX”,比如基于Redis实现商品信息的读缓存,解决了浏览高峰时因高频访问MySQL偶发卡顿的问题,体感性能上升30% 排版相关的:1. 大段文本要做提炼,比如“XXX等有基本的了解”改为“了解XXX”,文本相关都可以喂给GPT看看精简效果;2.黑体粗有点多,长文本和奖项的加粗去掉,奖项的时间不用列;3. 项目和实习的时间挪到后面,保持一致
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务