好子串
定义一个字符串是好的,当且仅当这个字符串具有长度为 k的循环节。
循环节的定义:
若一个字符串由重复出现的子串组成,该子串就是循环节。
我们认为字符串本身就是它自己的循环节。
有一个字符串,想知道这个字符串最长好子串的长度是多少。
输入描述
第一行输入两个正整数 n,k,表示字符串长度,循环节长度。
第二行输入一个长度为 n ,只由小写字母组成的字符串 s。
输出描述
输出一个整数表示最长的好子串长度。
写出这个代码或给出解题思路
好子串
定义一个字符串是好的,当且仅当这个字符串具有长度为 k的循环节。
循环节的定义:
若一个字符串由重复出现的子串组成,该子串就是循环节。
我们认为字符串本身就是它自己的循环节。
有一个字符串,想知道这个字符串最长好子串的长度是多少。
输入描述
第一行输入两个正整数 n,k,表示字符串长度,循环节长度。
第二行输入一个长度为 n ,只由小写字母组成的字符串 s。
输出描述
输出一个整数表示最长的好子串长度。
写出这个代码或给出解题思路
以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
解题思路:
代码实现(Python):
def longest_good_substring(n, k, s):
max_length = 0
for i in range(n - k + 1):
substring = s[i:i + k]
if s.count(substring) > 1:
max_length = max(max_length, len(substring))
return max_length
# 输入
n, k = map(int, input().split())
s = input()
# 计算并输出结果
result = longest_good_substring(n, k, s)
print(result)