Trong bài viết này, chúng ta sẽ tìm hiểu về Ký tự không lặp lại thứ K trong Python sử dụng List Comprehension và OrderedDict. Để làm vậy, chúng ta nhờ sự trợ giúp của các cấu trúc tích hợp sẵn trong Python.
Thuật toán
1. Trước tiên, chúng ta tạo dữ liệu dictionary từ đầu vào. 2. Bây giờ đếm tần suất của mỗi ký tự. 3. Bây giờ trích xuất danh sách tất cả các khóa có giá trị bằng 1. 4. Cuối cùng, trả về ký tự k-1.
Ví dụ
from collections import OrderedDict
import itertools
def kthRepeating(inp, k):
# Trả về dữ liệu dictionary
dict = OrderedDict.fromkeys(inp, 0)
# Tần suất mỗi ký tự
for ch in inp:
dict[ch] += 1
# Trích xuất danh sách tất cả khóa có giá trị là 1
nonRepeatDict = [key for (key, value) in dict.items() if value == 1]
# Trả về ký tự (k-1)
if len(nonRepeatDict) < k:
return 'không có đầu ra.'
else:
return nonRepeatDict[k - 1]
# Hàm driver
if __name__ == "__main__":
inp = "tutorialspoint"
k = 3
print(kthRepeating(inp, k))
Kết quả
a
Kết luận
Trong bài viết này, chúng ta đã tìm thấy Ký tự không lặp lại thứ K trong Python sử dụng List Comprehension và OrderedDict.