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

ตรวจสอบลำดับตัวอักษรในสตริงด้วย OrderedDict ใน Python


เมื่อต้องการตรวจสอบว่าตัวอักษรในรูปแบบ (pattern) ปรากฏในสตริงตามลำดับที่ถูกต้องหรือไม่ ใช้ OrderedDict.fromkeys() เพื่อเก็บลำดับตัวอักษรที่ไม่ซ้ำ

ตัวอย่างโค้ด

from collections import OrderedDict

def check_order(text, pattern):
    od = OrderedDict.fromkeys(text)
    pattern_idx = 0
    
    for char in od:
        if char == pattern[pattern_idx]:
            pattern_idx += 1
            if pattern_idx == len(pattern):
                return 'The order of pattern is correct'
    return 'The order of pattern is incorrect'

text = 'Hi Mark'
pattern = 'Ma'
print("The string is:", text)
print("The pattern is:", pattern)
print(check_order(text, pattern))

ผลลัพธ์

The string is: Hi Mark
The pattern is: Ma
The order of pattern is correct

คำอธิบาย

  • OrderedDict.fromkeys(text) สร้างดิกชันนารีที่มีคีย์เป็นตัวอักษรใน text ตามลำดับปรากฏครั้งแรก (ลบซ้ำ)

  • วนลูปผ่านคีย์ของ OrderedDict (ซึ่งเรียงตามลำดับใน text)

  • พยายามจับคู่กับ pattern ทีละตัวอักษร

  • ถ้าจับคู่ครบ pattern ทั้งหมด → ลำดับถูกต้อง

  • หมายเหตุ: Python 3.7+ dict ธรรมดาก็รักษาลำดับได้แล้ว แต่ OrderedDict ชัดเจนกว่าสำหรับวัตถุประสงค์นี้