Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมตรวจสอบสตริงว่าสตริงซ้ำหรือไม่ใน Python


สมมุติว่าเรามี string เราต้องเช็คก่อนว่าเป็น string ซ้ำหรือไม่

ดังนั้น หากอินพุตเป็นเหมือน string ="helloworldhelloworld" ผลลัพธ์จะเป็น True

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • n :=ขนาดของ s
  • กำหนดฟังก์ชัน findFactors() นี่จะใช้เวลา n
  • f :=ชุดใหม่
  • ผม :=1
  • ในขณะที่ i * i <=n ทำ
    • ถ้า n mod i เหมือนกับ 0 แล้ว
      • แทรกผลหารของ (n / i) ลงใน f
      • ใส่ i เข้าไปใน f
    • ผม :=ผม + 1
  • กลับมา f
  • จากวิธีหลัก ให้ทำดังต่อไปนี้ −
  • ข้อเท็จจริง :=findFactors(n)
  • สำหรับ i แต่ละคนจริงๆ ทำ
    • ถ้าฉันเหมือนกับ n แล้ว
      • ติดตามตอนต่อไป
    • ss :=s[จากดัชนี 0 ถึง i-1]
    • val :=การเกิด ss ใน s
    • ถ้า val เท่ากับผลหารของ (n/i) แล้ว
      • คืนค่า True
  • คืนค่าเท็จ

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

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