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

Chương trình Python xóa các ký tự trùng lặp trong chuỗi (giữ thứ tự xuất hiện đầu tiên)


Cho chuỗi s. Loại bỏ các ký tự đã xuất hiện trước đó, chỉ giữ lại lần xuất hiện đầu tiên của mỗi ký tự. Kết quả là chuỗi các ký tự duy nhất theo thứ tự xuất hiện ban đầu.

Ví dụ: "cabbbaadac" → "cabd".

Cách thực hiện

Sử dụng OrderedDict từ module collections (hoặc dict thường trong Python 3.7+ vì dict bảo toàn thứ tự chèn).

  • Duyệt từng ký tự c trong s.
  • Nếu c chưa có trong dict, thêm vào với giá trị bất kỳ.
  • Cuối cùng, nối các key của dict thành chuỗi kết quả.

Ví dụ mã nguồn

from collections import OrderedDict

def solve(s):
    d = OrderedDict()
    for c in s:
        if c not in d:
            d[c] = 0
        d[c] += 1
    return ''.join(d.keys())

s = "cabbbaadac"
print(solve(s))  # cabd

Đầu vào / Đầu ra

Input:  "cabbbaadac"
Output: cabd