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

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

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

// 新构造一个大于字符串长度一的数组arr;从末尾开始算出现数字的个数,如果当前的s[i]是数字,则arr[i] = arr[i+1]+1;然后输出arr里面最大的数count后面的count位数字
#include <stdio.h>
#include <iostream>
#include <vector>
using namespace std;

int main() {
    string s;
    int n;
    
    int count;
    while(getline(cin,s)){
        count = 0;
        n = s.size();
        vector<int> arr(n+1);
        //cout<<n;
        for(int i=n;i>=0;i--) arr[i] = 0;
        
        for(int i = n-1;i>=0;i--){
            if(s[i]>='0'&&s[i]<='9'){
                arr[i] = arr[i+1]+1;
                //cout<<arr[i];
                if(arr[i]>count) count = arr[i];                
            }          

        }
        for(int i = 0;i<n;i++){
            if(arr[i]==count){
                for(int j=i;j<i+count;j++) {cout<<s[j];}
                continue;                    
            }
        }
        cout<<','<<count<<endl;
    }
    
}
#华为笔试#
全部评论

相关推荐

新记话事人:你就和她说去抖音了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务