ในบทความนี้ เราจะเรียนรู้เกี่ยวกับตัวอักษรที่ไม่ซ้ำกันลำดับที่ 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