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

ตรวจสอบว่าสตริงเป็นไปตามลำดับของอักขระที่กำหนดโดยรูปแบบหรือไม่ในPython


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

ดังนั้น หากอินพุตเป็น s ="hello world" t ="hw" ผลลัพธ์จะเป็น True

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

  • ถ้าขนาดของ s <ขนาดของ t แล้ว
    • คืนค่าเท็จ
  • สำหรับ i ในช่วง 0 ถึงขนาด t - 2 ทำ
    • x :=t[i], y :=t[i + 1]
    • ขวา :=ดัชนีสุดท้ายของ x ในหน่วย s
    • ซ้าย :=ดัชนีแรกของ x ในหน่วย s
    • ถ้าขวาคือ -1 หรือซ้ายคือ -1 หรือขวา> ซ้าย แล้ว
      • คืนค่าเท็จ
  • คืนค่า True

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

โค้ดตัวอย่าง

def solve(s, t):
   if len(s) < len(t) :
      return False
 
   for i in range(len(t) - 1):
      x = t[i]
      y = t[i + 1]
 
      right = s.rindex(x)
      left = s.index(y)
 
      if right == -1 or left == -1 or right > left:
         return False

   return True

s = "hello world"
t = "hw"
print(solve(s, t))

อินพุต

"hello world", "hw"

ผลลัพธ์

True