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

ตรวจสอบว่าสตริงที่กำหนดสามารถแบ่งออกเป็นสี่สตริงที่แตกต่างกันใน Python . ได้หรือไม่


สมมติว่าเรามีสตริง s เราต้องตรวจสอบว่าเราสามารถแยกสตริงย่อยออกเป็นสี่สตริงย่อยได้หรือไม่ โดยแต่ละสตริงจะไม่ว่างและไม่ซ้ำกัน

ดังนั้น หากอินพุตเป็น s ="helloworld" ผลลัพธ์จะเป็น True เนื่องจากชุดสตริงย่อยชุดหนึ่งที่เป็นไปได้คือ ["hel", "lo", "wor", "ld"]

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

  • ถ้าขนาด s>=10 แล้ว
    • คืนค่า True
  • สำหรับ i ในช่วง 1 ถึงขนาด s - 1 ทำ
    • สำหรับ j ในช่วง i + 1 ถึงขนาด s - 1 ทำ
      • สำหรับ k ในช่วง j + 1 ถึงขนาด s - 1 ทำ
        • sub1 :=s[จากดัชนี 0 ถึง i - 1]
        • sub2 :=s[จากดัชนี i ถึง j - i - 1]
        • sub3 :=s[จากดัชนี j ถึง k - j - 1]
        • sub4 :=s[จากดัชนี k ถึงขนาดของ s - k - 1]
        • ถ้า sub1 sub2 sub3 และ sub4 ต่างกันทั้งหมดแล้ว
          • คืนค่า True
  • คืนค่าเท็จ

ตัวอย่าง

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

def solve(s):
   if len(s) >= 10:
      return True
   for i in range(1, len(s)):
      for j in range(i + 1, len(s)):
         for k in range(j + 1, len(s)):
            sub1 = s[0:i]
            sub2 = s[i:j - i]
            sub3 = s[j: k - j]
            sub4 = s[k: len(s) - k]
            if sub1 != sub2 and sub1 != sub3 and sub1 != sub4 and sub2 != sub3 and sub2 != sub4 and sub3 != sub4:
               return True
   return False
s = "helloworld"
print (solve(s))

อินพุต

"helloworld"

ผลลัพธ์

True