如果字符串的一个子串(其长度大 1)的各个字符均相同,则称之为等值子串。试设计一算 法:输入字符串 S,以‘!’为结束标志,如果串 S 中不存在等值子串,则输出信息:” 无等值子串”,否则求出(输出)一个长度最大的等值子串。
时间: 2023-12-10 09:39:20 浏览: 68
计算字符串长度 和 判断两个字符串是否相同
可以通过遍历字符串S,对于每个字符,判断其与后续字符是否相同,如果相同就计算该等值子串的长度,如果长度大于已知的最大等值子串的长度,就更新最大等值子串的信息。具体实现可以参考以下代码:
```python
s = input("请输入字符串S:")
max_len = 0
max_str = ""
for i in range(len(s)):
j = i + 1
while j < len(s) and s[j] == s[i]:
j += 1
if j - i > 1:
sub_str = s[i:j]
if len(sub_str) > max_len:
max_len = len(sub_str)
max_str = sub_str
if max_len == 0:
print("无等值子串")
else:
print("最大等值子串为:", max_str)
```
在上述代码中,我们使用了两个变量max_len和max_str来保存已知的最大等值子串的长度和字符串信息。我们遍历字符串S的每个字符,对于每个字符,从它的下一个字符开始向后遍历,直到找到一个不同于它的字符为止。如果这个子串的长度大于1,就说明它是一个等值子串,我们计算这个子串的长度,如果比已知的最大等值子串的长度要大,就更新max_len和max_str的值。最后,如果max_len的值仍然为0,就说明S中不存在等值子串,输出相应的信息即可。
阅读全文