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

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

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

#include <bits/stdc++.h>
using namespace std;

int main() {
    string s = "";
    while(cin >> s){
        vector<pair<string, int>> res;
        int right = 0;
        int maxLength = INT_MIN;
        for(int i = 0; i < s.size(); i++){
            if(isdigit(s[i])){
                right = i;
                while(right < s.size() && isdigit(s[right])){
                    right++;
                }
                
                if(right - i> maxLength){
                    string tmp = s.substr(i, right - i);
                    res.clear();
                    res.push_back(make_pair(tmp, tmp.size()));
                    maxLength = right - i;
                }
                else if(right - i == maxLength){
                    string tmp = s.substr(i, right - i);
                    string str = res[0].first + tmp;
                    res.clear();
                    res.push_back(make_pair(str, tmp.size()));
                }
                
                i = right;
            }
        }
        
        //输出
        for(auto iter = res.begin(); iter != res.end(); iter++){
            cout << iter->first << "," << iter->second << endl;
        }
       
    }
}

华为题库题解 文章被收录于专栏

牛客华为题库的题解

全部评论

相关推荐

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