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

Chương trình Python: Tìm tất cả ký tự trùng lặp trong chuỗi

Trong hướng dẫn này, chúng ta sẽ tìm các ký tự xuất hiện nhiều hơn 1 lần trong chuỗi.

Ví dụ

Input:  "tutorialspoint"
Output: t o i  (xuất hiện 2 lần)

Cách 1: Dùng str.count()

string = "tutorialspoint"
duplicates = []

for char in string:
    if string.count(char) > 1:
        if char not in duplicates:
            duplicates.append(char)

print(*duplicates)  # t o i

Kết quả

t o i

Cách 2: Dùng Dictionary đếm tần suất (Hiệu quả hơn O(n))

string = "tutorialspoint"
freq = {}

for char in string:
    if char in freq:
        freq[char] += 1
    else:
        freq[char] = 1

for char, count in freq.items():
    if count > 1:
        print(char, end=" ")
print()

Kết quả

t o i

Cách 3: Dùng collections.Counter (Pythonic nhất)

from collections import Counter

string = "tutorialspoint"
freq = Counter(string)
duplicates = [char for char, count in freq.items() if count > 1]
print(*duplicates)

So sánh độ phức tạp

  • count() trong vòng lặp: O(n²) - chậm với chuỗi dài
  • Dictionary thủ công: O(n) - tốt
  • Counter: O(n) - ngắn gọn, khuyến nghị