สมมติว่าเรามีสตริง 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