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ị