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

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

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

#include <cctype>
#include <iostream>
#include <vector>
using namespace std;

int main() {
    string s;
    while (cin>>s) {
        vector<int> dp(s.size()+1,0);

    for (int i=1; i<=s.size(); i++) {
        if(isdigit(s[i-1])){
            dp[i] = dp[i-1]+1;
        }
    }

    int max_len = 0;
    for (auto& i:dp) {
        max_len = max(i,max_len);
        
    }

    vector<string> ss;
    if (max_len > 0) {
        for (int i=0; i<dp.size(); i++) {
            if(dp[i]==max_len){
                string r = s.substr(i-max_len,max_len);
                ss.push_back(r);
            }
        }
    }

    for(auto& s:ss){
        cout<<s;
    }
    cout<<","<<max_len<<endl;
    }

}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

03-17 19:21
门头沟学院 Java
面试官_我太想进步了:正常企查查显示的员工一般比设计的少
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务