Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Ký tự không lặp lại thứ K trong Python dùng List Comprehension và OrderedDict

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.