Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 주어진 문자열에서 중복 문자를 제거하는 프로그램

<시간/>

문자열 s가 있다고 가정합니다. 이전에 이미 나타난 모든 중복 문자를 제거해야 합니다. 최종 문자열은 실제 문자열과 동일한 순서의 문자를 갖습니다.

문자의 삽입 순서를 유지하기 위해 정렬된 사전을 사용하여 이 문제를 해결할 수 있습니다. 값은 해당 문자의 빈도이지만 여기서 빈도 값은 중요하지 않습니다. 딕셔너리를 구성한 후 키를 가져 와서 결합하여 문자열을 얻을 수 있습니다.

따라서 입력이 s ="bbabcaaccdbaabababc"와 같으면 출력은 "bacd"가 됩니다.

  • d :=키가 삽입 순서에 따라 순서대로 저장되는 사전
  • s의 각 문자 c에 대해 다음을 수행합니다.
    • c가 d에 없으면
      • d[c] :=0
    • d[c] :=d[c] + 1
  • 출력 문자열을 만들고 반환하기 위해 적절한 순서로 키를 차례로 결합합니다.

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

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))

입력

"bbabcaaccdbaabababc"

출력

"bacd"