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

ตัวอักษรที่ไม่ซ้ำกันลำดับที่ K ใน Python ด้วย List Comprehension และ OrderedDict


ในบทความนี้ เราจะเรียนรู้เกี่ยวกับตัวอักษรที่ไม่ซ้ำกันลำดับที่ K ใน Python โดยใช้ List Comprehension และ OrderedDict เพื่อทำเช่นนั้น เราใช้ความช่วยเหลือของโครงสร้างในตัว (built-in constructs) ที่มีใน Python

อัลกอริทึม

1. ก่อนอื่น เราสร้างข้อมูลแบบดิกชันนารีจากอินพุต
2. ตอนนี้นับความถี่ของแต่ละตัวอักษร
3. ตอนนี้แยกลิสต์ของคีย์ทั้งหมดที่มีค่าเท่ากับ 1
4. สุดท้าย คืนค่าตัวอักษรลำดับ k-1

ตัวอย่าง

from collections import OrderedDict
import itertools

def kthRepeating(inp, k):
    # คืนค่าข้อมูลแบบดิกชันนารี
    dict = OrderedDict.fromkeys(inp, 0)
    # ความถี่ของแต่ละตัวอักษร
    for ch in inp:
        dict[ch] += 1
    # ตอนนี้แยกลิสต์ของคีย์ทั้งหมดที่มีค่าเป็น 1
    nonRepeatDict = [key for (key, value) in dict.items() if value == 1]
    # คืนค่าตัวอักษรลำดับ (k-1)
    if len(nonRepeatDict) < k:
        return 'no output.'
    else:
        return nonRepeatDict[k - 1]

# Driver function
if __name__ == "__main__":
    inp = "tutorialspoint"
    k = 3
    print(kthRepeating(inp, k))

ผลลัพธ์

a

สรุป

ในบทความนี้ เราพบตัวอักษรที่ไม่ซ้ำกันลำดับที่ K ใน Python โดยใช้ List Comprehension และ OrderedDict