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

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

int main() {
    string str;
    while (cin >> str) {
        // 1. 提取数字字串
        string temp_num;
        temp_num = "";
        vector<string> res;
        res.clear();
        int is_num_flag = 0;
        for (char i : str) {
            if (i >= '0' && i <= '9') {
                temp_num += i;
            } else {
                if (empty(temp_num)) {
                    continue;
                } else {
                    res.push_back(temp_num);
                    temp_num = "";
                }
            }
        }
        if (empty(temp_num)) {
            ;
        } else {
            res.push_back(temp_num);
        }

        // 2. 把每个长度存入vec
        vector<int> num_str_lens;
        num_str_lens.clear();
        for (string num_str : res) {
            int num_str_len = num_str.size();
            num_str_lens.push_back(num_str_len);
        }

        // 3. 找到num_str_lens中的最大值
        auto max_ptr = max_element(num_str_lens.begin(), num_str_lens.end());
        int max_len = *max_ptr;

        // 4. 依次打印出数字字串长度等于最大长度的数字字串
        for (string num_str : res) {
            if (num_str.size() == max_len) {
                cout << num_str;
            }
        }
        cout << ',' << max_len << endl;
    }



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

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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