问题描述】 本题目要求读入一个字符串,输出字符串的最长数字子串。 【输入形式】 输入一个字符串 【输出形式】 输出最长数字子串,若有多个最长数字子串输出最后一个,若字符串无数字字符,则输出“No digits”。
时间: 2023-07-13 16:34:42 浏览: 91
以下是Python的实现代码:
```python
s = input()
digits_list = []
digits_str = ''
max_digits_str = ''
for c in s:
if c.isdigit():
digits_str += c
else:
if digits_str:
digits_list.append(digits_str)
digits_str = ''
if digits_str:
digits_list.append(digits_str)
if not digits_list:
print('No digits')
else:
for digits_str in digits_list:
if len(digits_str) > len(max_digits_str):
max_digits_str = digits_str
print(max_digits_str)
```
代码思路:
1. 从标准输入读入一个字符串。
2. 遍历字符串中的每个字符,如果是数字字符,则将其加入当前数字子串 `digits_str` 中,否则将当前数字子串加入数字子串列表 `digits_list` 中,并将 `digits_str` 赋值为空字符串。
3. 如果 `digits_str` 不为空,则将其加入 `digits_list` 中。
4. 如果 `digits_list` 为空,则输出“No digits”并结束程序。
5. 否则,遍历 `digits_list` 中的每个数字子串,找到其中最长的子串并将其赋值给 `max_digits_str`。
6. 输出 `max_digits_str`。
阅读全文