Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

String Slicing ใน Python: ตรวจสอบว่าสตริงว่างได้จากการลบซ้ำหรือไม่

ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมตรวจสอบว่าสตริงที่กำหนดสามารถกลายเป็นสตริงว่างได้หรือไม่ โดยการลบซ้ำ (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 ซ้ำจนว่าง หากมีข้อสงสัย กรุณาแจ้งในส่วนความคิดเห็น