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

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

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

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

int main() {
    string str;
    vector<string> arr;
    while (getline(cin, str))
    {
        int maxlen = 0, cnt = 0;
        string tmp;
        for (auto x : str)
        {
            if (isdigit(x))
            {
                tmp += x;
                cnt++;
            }
            else  
            {
                if (maxlen > cnt)
                {
                    tmp.clear();
                    cnt = 0;
                }
                else if (maxlen == cnt && cnt != 0)
                {
                    arr.push_back(tmp);
                    tmp.clear();
                    cnt = 0;
                }
                else if (maxlen < cnt)
                {
                    arr.clear();
                    arr.push_back(tmp);
                    tmp.clear();
                    maxlen = cnt;
                    cnt = 0;
                }
            }
        }
        if (cnt != 0)
        {
            if (maxlen == cnt)
            {
                arr.push_back(tmp);
            }
            else if (maxlen < cnt)
            {
                arr.clear();
                arr.push_back(tmp);
                maxlen = cnt;
            }
        }
        for (auto s : arr)
        {
            cout << s;
        }
        cout << ',' << maxlen << endl;
    }
    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务