本题目要求读入一个字符串,输出字符串的最长数字子串。 输出最长数字子串,若有多个最长数字子串输出最后一个,若字符串无数字字符,则输出"No digits"。用python
时间: 2023-07-18 07:34:27 浏览: 49
好的,我明白了。下面是 Python 的代码实现:
```python
# 读入字符串
s = input().strip()
# 初始化变量
max_len = 0 # 最长数字子串的长度
max_digit_str = "" # 最长数字子串
# 遍历字符串
digit_str = ""
for c in s:
if c.isdigit():
digit_str += c
else:
if digit_str:
# 如果当前遍历到的字符不是数字,且 digit_str 非空,则说明上一个数字子串已经结束
if len(digit_str) >= max_len:
# 如果当前 digit_str 的长度大于等于 max_len,则更新 max_len 和 max_digit_str
max_len = len(digit_str)
max_digit_str = digit_str
digit_str = ""
# 处理最后一个数字子串
if digit_str:
if len(digit_str) >= max_len:
max_len = len(digit_str)
max_digit_str = digit_str
# 输出结果
if max_len == 0:
print("No digits")
else:
print(max_digit_str)
```
代码中使用了一个变量 `digit_str` 来记录当前正在遍历的数字子串,遇到非数字字符时更新最长数字子串。当遍历结束时,还需要处理最后一个数字子串。
注意,题目要求输出最后一个最长数字子串,因此在更新 `max_digit_str` 时不需要考虑相等的情况。