问题描述】 本题目要求读入一个字符串,输出字符串的最长数字子串。 【输入形式】 输入一个字符串 【输出形式】 输出最长数字子串,若有多个最长数字子串输出最后一个,若字符串无数字字符,则输出“No digits”。 【输入样例】 sdffsd123werrer456fgdgdg1dfgdf12 【样例输出】 456
时间: 2023-12-02 13:03:43 浏览: 24
输入一个字符串,将输出该字符串最长对称子串及其长度
5星 · 资源好评率100%
以下是 Python 代码实现:
```python
s = input() # 输入字符串
max_len = 0 # 最长数字子串的长度
max_num_str = "" # 最长数字子串
num_str = "" # 当前数字子串
for i in range(len(s)):
if s[i].isdigit(): # 判断当前字符是否为数字
num_str += s[i]
if i == len(s) - 1 or not s[i+1].isdigit(): # 如果当前数字子串已经结束
if len(num_str) > max_len: # 如果当前数字子串更长
max_len = len(num_str)
max_num_str = num_str
num_str = ""
else:
num_str = ""
if max_len == 0:
print("No digits")
else:
print(max_num_str)
```
代码思路:
遍历字符串,如果当前字符是数字,则将其加入当前数字子串中,否则将当前数字子串置为空串。当遇到非数字字符或到达字符串末尾时,判断当前数字子串的长度是否超过当前最长数字子串的长度,如果是则更新最长数字子串和其长度。最后根据最长数字子串的长度是否为 0 来输出结果。
阅读全文