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"

輸出

2

更新於: 2021年5月17日

1K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.