Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình kiểm tra chuỗi có lặp lại chuỗi hay không trong Python

Giả sử chúng ta có một chuỗi, chúng ta phải kiểm tra xem đó có phải là một chuỗi lặp lại hay không.

Vì vậy, nếu đầu vào là string ="helloworldhelloworld", thì đầu ra sẽ là True

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • n:=kích thước của s
  • Xác định một hàm findFactors (). Điều này sẽ mất n
  • f:=một tập hợp mới
  • i:=1
  • while i * i <=n, do
    • nếu n mod i giống 0, thì
      • chèn thương số của (n / i) vào f
      • chèn i vào f
    • i:=i + 1
  • return f
  • Từ phương pháp chính, hãy thực hiện như sau -
  • thực tế:=findFactors (n)
  • đối với mỗi tôi trên thực tế, hãy thực hiện
    • nếu tôi giống n, thì
      • chuyển sang lần lặp tiếp theo
    • ss:=s [từ chỉ mục 0 đến i-1]
    • val:=số lần xuất hiện của ss trong s
    • nếu val giống với thương của (n / i), thì
      • trả về True
  • trả về Sai

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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"))

Đầu vào

"helloworldhelloworld"

Đầu ra

True