在Python中查找序列中最大的k重复子字符串的程序
假设我们有一个名为s的字符序列,如果将字符串w连接k次得到的字符串是序列的子字符串,则称该字符串w为k重复字符串。w的最大k重复值是使得w成为序列中k重复的最高值k。如果w不是给定序列的子字符串,则w的最大k重复值为0。因此,如果我们有s和w,则必须在序列中找到w的最大k重复值。
因此,如果输入为s =“papaya”w =“pa”,那么输出将为2,因为在“papaya”中“pa”出现了两次。
要解决此问题,我们将遵循以下步骤−
- Count:计算w在s中出现的次数
-
如果Count与0相同,则
- 返回0
- 对于i在范围Count到0的迭代中,递减1,执行以下操作
- 如果s中存在i个w的重复,则
- 返回i
- 如果s中存在i个w的重复,则
示例(Python)
让我们看以下实现,以获得更好的理解−
def solve(s, w):
Count=s.count(w)
if Count==0:
return 0
for i in range(Count,0,-1):
if w*i in s:
return i
s = "papaya"
w = "pa"
print(solve(s, w))
输入
"papaya","pa"
输出
2