สมมติว่าเรามีสองประโยค s และ t เราต้องเช็คก่อนว่าเหมือนหรือไม่ ประโยคนี้มีแต่ตัวอักษรภาษาอังกฤษ ประโยคสองประโยคถูกกล่าวว่าคล้ายกันเมื่อสามารถเพิ่มประโยคที่กำหนดเอง (อาจว่างเปล่า) ลงในประโยคที่กำหนดเหล่านี้เพื่อให้ทั้งสองประโยคเท่ากัน
ดังนั้น หากอินพุตเป็นเหมือน s ="we live at city Kolkata" t ="city Kolkata" ผลลัพธ์จะเป็น True เพราะเราสามารถรับ s จาก t ได้โดยการเพิ่มประโยค "we live in"
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
s1 :=รายการคำศัพท์ใน s
-
s2 :=รายการคำศัพท์ใน t
-
ถ้าขนาด s1> ขนาด s2 แล้ว
-
สลับ s1 และ s2
-
-
ขณะที่ s1 ไม่ว่างให้ทำ
-
ถ้า s2[0] เหมือนกับ s1[0] แล้ว
-
ลบคำแรกออกจาก s2
-
ลบคำแรกออกจาก s1
-
-
มิฉะนั้นเมื่อคำสุดท้ายของ s2 เหมือนกับคำสุดท้ายของ s1 แล้ว
-
ลบคำสุดท้ายออกจาก s2
-
ลบคำสุดท้ายออกจาก s1
-
-
มิฉะนั้น
-
คืนค่าเท็จ
-
-
-
คืนความจริง
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def solve(s, t): s1 = s.split() s2 = t.split() if len(s1) > len(s2): s1,s2 = s2,s1 while(s1): if(s2[0]==s1[0]): s2.pop(0) s1.pop(0) elif(s2[-1]==s1[-1]): s2.pop() s1.pop() else: return(False) return(True) s = "we live at city Kolkata" t = "city Kolkata" print(solve(s, t))
อินพุต
"we live at city Kolkata", "city Kolkata"
ผลลัพธ์
True