Python程序:从序列中查找最大k重复子字符串


假设我们有一个字符序列称为s,如果将字符串w连接k次是序列的一个子字符串,则我们称字符串w为k重复字符串。w的最大k重复值将是k的最高值,其中w在序列中是k重复的。如果w不是给定序列的子字符串,则w的最大k重复值为0。因此,如果我们有s和w,我们必须找到w在序列中的最大k重复值。

因此,如果输入类似于s = "papaya" w = "pa",则输出将为2,因为w = "pa"在"papaya"中出现两次。

为了解决这个问题,我们将遵循以下步骤:

  • Count:= s中w出现的次数

  • 如果Count等于0,则

    • 返回0

  • 对于从Count到0的范围i,递减1,执行以下操作:

    • 如果s中存在w的i次重复,则

      • 返回i

示例(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"

Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.

输出

2

更新于: 2021年5月17日

1K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告