输出最长数字子串,若有多个最长数字子串输出最后一个,若字符串无数字字符,则输出“No digits”。
时间: 2024-01-13 14:04:37 浏览: 72
好的,我来解答你的问题。以下是一个可能的实现方式:
```python
def longest_digit_substring(s):
longest_substring = ""
current_substring = ""
for c in s:
if c.isdigit():
current_substring += c
else:
if len(current_substring) > len(longest_substring):
longest_substring = current_substring
current_substring = ""
# Check if the last substring is the longest digit substring
if len(current_substring) > len(longest_substring):
longest_substring = current_substring
if longest_substring == "":
return "No digits"
return longest_substring
```
这个函数接受一个字符串 `s`,然后遍历这个字符串。遍历过程中,如果当前字符是数字,就把它加入当前子串 `current_substring` 中。如果当前字符不是数字,就检查当前子串是否比已知的最长子串 `longest_substring` 更长,如果是,就更新最长子串。最后,如果最长子串是空的,就返回 "No digits",否则就返回最长子串。
例如,如果调用 `longest_digit_substring("abc12345def6789")`,函数会返回 "6789",因为 "6789" 是最后一个长度为 4 的数字子串。
希望这个答案能够帮到你!
阅读全文