Python 程式檢查字串是否重複


假設我們有一個字串,我們需要檢查它是否是一個重複字串。

因此,如果輸入類似於 string = "helloworldhelloworld",則輸出將為 True

為了解決這個問題,我們將遵循以下步驟:

  • n := s 的大小
  • 定義一個函式 findFactors()。這將接收 n
  • f := 一個新的集合
  • i := 1
  • 當 i * i <= n 時,執行以下操作:
    • 如果 n mod i 等於 0,則:
      • 將 (n / i) 的商插入 f
      • 將 i 插入 f
    • i := i + 1
  • 返回 f
  • 從主方法中執行以下操作:
  • fact := findFactors(n)
  • 對於 fact 中的每個 i,執行以下操作:
    • 如果 i 等於 n,則:
      • 進入下一個迭代
    • ss := s[從索引 0 到 i-1]
    • val := ss 在 s 中出現的次數
    • 如果 val 等於 (n/i) 的商,則:
      • 返回 True
  • 返回 False

讓我們看一下以下實現以更好地理解:

示例

 線上演示

class Solution:
   def solve(self, s):
      n = len(s)
      def findFactors(n):
         f = set()
         i = 1
         while(i * i <= n):
            if(n % i == 0):
               f.add(int(n / i))
               f.add(i)
            i+= 1
            return f
         fact = findFactors(n)
         for i in fact:
            if(i == n):
               continue
            ss = s[:i]
            val = s.count(ss)
            if(val == int(n / i)):
               return True
         return False
ob = Solution()
print(ob.solve("helloworldhelloworld"))

輸入

"helloworldhelloworld"

輸出

True

更新於: 2020-10-07

107 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.