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

Python ค้นหาคำถามการเขียนโปรแกรมใน String


สมมติว่าเรามีสตริงตัวพิมพ์เล็ก s เราต้องตรวจสอบว่าสามารถเลือกลำดับของอักขระใน s ได้หรือไม่ − 1. ความแตกต่างของดัชนีสองตัวที่ต่อเนื่องกันของอักขระนั้นเหมือนกัน 2. อักขระประกอบเป็นสตริง "programmingquestion"

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

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

  • p :=อาร์เรย์ของดัชนีที่มี p อยู่
  • r :=อาร์เรย์ของดัชนีที่มี r อยู่
  • สำหรับแต่ละ j ใน p ทำ
    • สำหรับแต่ละ k ใน r ทำ
      • ถ้า k> j แล้ว
        • ถ้า "programmingquestion" ในสตริงย่อยของ s จากดัชนี j ถึงขนาดของ s โดยข้ามอักขระ k-j แล้ว
          • คืนค่า True
  • คืนค่าเท็จ

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

ตัวอย่าง

class Solution:
   def solve(self, s):
      p = [i for i, c in enumerate(s) if c == "p"]
      r = [i for i, c in enumerate(s) if c == "r"]
      for j in p:
         for k in r:
            if k > j:
               if "programmingquestion" in s[j:len(s):k-j]:
                  return True
      return False
ob = Solution()
s = "pzrzozgzrzazmzmziznzgzqzuzezsztzizozn"
print(ob.solve(s))

อินพุต

"pzrzozgzrzazmzmziznzgzqzuzezsztzizozn"

ผลลัพธ์

True