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

知识点字符串模拟

描述

对于给定的由数字和小写字母混合构成的字符串 s,找到其中最长的数字++子串++ 。如果由多个相同长度的数字子串,则需要全部输出,具体输出的格式请参考输出描述。

++子串++为从原字符串中,连续的选择一段字符(可以全选、可以不选)得到的新字符串。

输入描述:

输入一个长度为 1≦len(s)≦200、由数字和小写字母混合构成的字符串 s。保证至少存在一个数字子串。

输出描述:

记最长的数字子串长度为 l,有 m 个长度为 l 的数字子串。在一行上先首尾相连的输出 m 个长度为 l 的数字子串(不使用空格分割),随后输出一个逗号,再输出 l。

示例1

输入:

复制代码
abcd12345ed125ss123058789

输出:

复制代码
123058789,9

示例2

输入:

复制代码
11a22b33c

输出:

复制代码
112233,2

说明:

复制代码
在这个样例中,数字子串 "11","22","33" 长度均为 2,都是最长的数字子串。

备注:

复制代码
本题数据已规范为单组询问(2025/01/15)。
cpp 复制代码
#include<iostream>
#include<string>
#include<vector>

using namespace std;

int main()
{
    string s;
    while (cin>>s)
    {
        int i=0;
        int maxm = 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;
}
相关推荐
niuniudengdeng3 分钟前
六面独立转动魔方还原机器人设计与实现
数学·算法·机器人
ghie90904 分钟前
基于MATLAB的A*算法避障路径规划实现
人工智能·算法·matlab
Irissgwe15 分钟前
C&C++内存管理
c语言·开发语言·c++·c++内存管理
雾岛听蓝16 分钟前
C文件操作与系统IO
linux·c语言·开发语言·经验分享·笔记·算法
zh路西法29 分钟前
【宇树机器人强化学习】(一):PPO算法的python实现与解析
python·深度学习·算法·机器学习·机器人
随意起个昵称32 分钟前
【贪心】选择尽量多的不相交区间
数据结构·算法
章小幽41 分钟前
LeetCode-35.搜索插入位置
数据结构·算法·leetcode
放下华子我只抽RuiKe51 小时前
机器学习全景指南-探索篇——发现数据内在结构的聚类算法
人工智能·深度学习·算法·机器学习·语言模型·数据挖掘·聚类
玖釉-1 小时前
解密图形渲染的性能原罪 —— Draw Call
c++·windows·图形渲染
肆忆_1 小时前
C++ 设计模式与 SOLID 原则实战笔记
c++