Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình xóa các ký tự trùng lặp khỏi một chuỗi nhất định bằng Python

Giả sử chúng ta có một chuỗi s. Chúng tôi phải loại bỏ tất cả các ký tự trùng lặp đã xuất hiện trước đó. Chuỗi cuối cùng sẽ có thứ tự các ký tự giống như chuỗi thực.

Chúng ta có thể giải quyết điều này bằng cách sử dụng từ điển có thứ tự để duy trì thứ tự chèn của các ký tự. Giá trị sẽ là tần số của các ký tự đó, tuy nhiên giá trị tần số không quan trọng ở đây. Sau khi tạo từ điển, chúng ta có thể chỉ cần lấy các khóa và nối chúng để lấy chuỗi.

Vì vậy, nếu đầu vào giống như s ="bbabcaaccdbaabababc", thì đầu ra sẽ là "bacd".

  • d:=một từ điển nơi các khóa được lưu trữ theo thứ tự chèn của chúng
  • đối với mỗi ký tự c trong s, thực hiện
    • nếu c không có trong d, thì
      • d [c]:=0
    • d [c]:=d [c] + 1
  • nối các khóa lần lượt theo thứ tự thích hợp để tạo chuỗi đầu ra và trả về.

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơ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 = "bbabcaaccdbaabababc"
print(solve(s))

Đầu vào

"bbabcaaccdbaabababc"

Đầu ra

"bacd"