สมมติว่าเรามีสองประโยค 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