สมมติว่าเรามีสตริง s ยาว 2 และมีรายการคำ w โดยที่ทุกคำมีความยาว 2 เราต้องตรวจสอบว่าเราสามารถเชื่อมคำจาก w และสตริงที่ต่อกันนั้นมี s เป็นสตริงย่อยหรือไม่พี>
ดังนั้น หากอินพุตเป็น s ="no", w =["ol", "on", "ni", "to"] ผลลัพธ์จะเป็น True เนื่องจากเราสามารถเชื่อมสตริงเช่น "onol" ได้ มีคำว่า "ไม่"
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- n :=จำนวนคำใน w
- char_0 :=เท็จ char_1 :=เท็จ
- สำหรับฉันในช่วง 0 ถึง n - 1 ทำ
- ถ้า w[i] เหมือนกับ s แล้ว
- คืนค่า True
- ถ้า s[0] เหมือนกับ w[i, 1] แล้ว
- char_0 :=จริง
- ถ้า s[1] เหมือนกับ w[i, 0] แล้ว
- char_1 :=จริง
- ถ้า char_0 และ char_1 เป็นจริงทั้งคู่
- คืนค่า True
- ถ้า w[i] เหมือนกับ s แล้ว
- คืนค่าเท็จ
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
def solve(s, w): n = len(w) char_0 = False char_1 = False for i in range(n): if w[i] == s: return True if s[0] == w[i][1]: char_0 = True if s[1] == w[i][0]: char_1 = True if char_0 and char_1: return True return False s = "no" w = ["ol", "on", "ni", "to"] print(solve(s, w))
อินพุต
"no", ["ol", "on", "ni", "to"]
ผลลัพธ์
True