首页 > 试题广场 >

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

[编程题]在字符串中找出连续最长的数字串
  • 热度指数:147590 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
\hspace{15pt}对于给定的由数字和小写字母混合构成的字符串 s,找到其中最长的数字子串。如果由多个相同长度的数字子串,则需要全部输出,具体输出的格式请参考输出描述。

\hspace{15pt}子串为从原字符串中,连续的选择一段字符(可以全选、可以不选)得到的新字符串。

输入描述:
\hspace{15pt}输入一个长度为 1 \leqq {\rm len}(s) \leqq 200、由数字和小写字母混合构成的字符串 s。保证至少存在一个数字子串。


输出描述:
\hspace{15pt}记最长的数字子串长度为 l,有 m 个长度为 l 的数字子串。在一行上先首尾相连的输出 m 个长度为 l 的数字子串(不使用空格分割),随后输出一个逗号,再输出 l
示例1

输入

abcd12345ed125ss123058789

输出

123058789,9
示例2

输入

11a22b33c

输出

112233,2

说明

\hspace{15pt}在这个样例中,数字子串 \texttt{ 长度均为 2,都是最长的数字子串。

备注:
\hspace{15pt}本题数据已规范为单组询问(2025/01/15)。
python 
# coding: utf-8
import re
def func(s):
    max_str = ''
    nums = re.findall(r'\d+', s)
    max_length = len(max(nums,key=len))
    for i in nums:
        if len(i) == max_length:
            max_str += i
    print max_str + ',' + str(max_length)
if __name__ == "__main__":
    import sys
    try:
        while True:
            line1 = sys.stdin.readline().strip()
            func(line1)
    except:
        pass


发表于 2022-04-14 23:49:11 回复(0)