ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมตรวจสอบว่าสตริงที่กำหนดสามารถกลายเป็นสตริงว่างได้หรือไม่ โดยการลบซ้ำ (recursive deletion) ของ substring ด้วย slice ให้เข้าใจชัดเจนด้วยตัวอย่าง
อินพุท
string = "tutorialstutorialspointpoint" sub_string = "tutorialspoint"
เอาต์พุท
True
- หลังรอบที่ 1 tutorialstutorialspointpoint กลายเป็น tutorialspoint
- หลังรอบที่ 2 สตริงจะว่างเปล่า
เราสามารถทำได้ด้วยเมธอด find() ของสตริง ทำตามขั้นตอน
- กำหนด string และ sub_string
- ถ้าใดๆ ว่าง คืนค่า False
- While ความยาว string > 0 ทำ:
- ตรวจสอบว่า sub_string อยู่ใน string หรือไม่
- ถ้าไม่มี คืนค่า False
- คืนค่า True เพราะลูปไม่จบกลางคัน
ตัวอย่าง
def is_valid(string, sub_string):
# ตรวจสอบความยาว
if len(string) > 0 and len(sub_string):
# วนลูปจน string ว่าง
while len(string) > 0:
# หา sub_string ใน string
index = string.find(sub_string)
# ตรวจสอบว่ามีหรือไม่
if index == -1:
return False
# ลบ sub_string ออก
string = string[0:index] + string[index + len(sub_string):]
return True
else:
return False
if __name__ == '__main__':
string = 'tutorialstutorialspointpoint'
sub_string = 'tutorialspoint'
print(is_valid(string, sub_string))
ผลลัพธ์
การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้
True
สรุป
ใช้ find() และ slicing ลบ substring ซ้ำจนว่าง หากมีข้อสงสัย กรุณาแจ้งในส่วนความคิดเห็น