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

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

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

#include <bits/stdc++.h>
using namespace std;
//双指针法
int main() {
    string s; 
    while(cin>>s){
        int maxm=0;
        int i=0;//首指针
        vector<int> index;
        while(i<s.size()){
            if('0'<=s[i] && s[i]<='9'){
                int j=i+1;//尾指针
                while('0'<=s[j] && s[j]<='9')
                    j++;
                //如果和和当前最大长度相等,纪录字串第一个字符
                if((j-i)==maxm)
                    index.push_back(i);
                //如果大于当前最大长度,则更新
                if((j-i)>maxm){
                    maxm=j-i;
                    index.clear();//清空之前的记录
                    index.push_back(i);
                }
                i=j+1;//调过该字串,开始下一个字串
            }
            else
                i++;  
        }
        //输出
        for(int h=0;h<index.size();h++){
            for(int k=0;k<maxm;k++)
                cout<<s[index[h]+k];
        }
        cout<<','<<maxm<<endl;
    }
    return 0;
}
全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务