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

Python을 사용하여 문자열에서 모든 중복 문자 찾기

<시간/>

하나의 문자열이 제공됩니다. 우리의 임무는 주어진 문자열에서 빈도가 둘 이상인 문자를 찾는 것입니다.

예를 들어 "Hello World. Let's Learn Python”을 사용하면 알고리즘이 여러 번 발생하는 문자를 찾을 수 있습니다. 이 경우 출력은 다음과 같습니다. -

e : 3
l : 4
o , 3)
<space> : 4 
r : 2
t : 2
n : 2

이 문제를 구현하기 위해 우리는 Python Collections를 사용하고 있습니다. 컬렉션에서 Counter() 메서드를 얻을 수 있습니다. Counter() 메서드는 해시 테이블 개체를 계산하는 데 사용됩니다. 이 경우 텍스트에서 문자를 분리하여 각 문자를 사전의 키로 만들고, 문자 수는 해당 키의 값입니다.

알고리즘

Step 1: Find the key-value pair from the string, where each character is key and character counts are the values.
Step 2: For each key, check whether the value is greater than one or not. 
Step 3: If it is greater than one then, it is duplicate, so mark it. Otherwise, ignore the character 
문자를 무시하십시오.

예시 코드

from collections import Counter
defcalc_char_freq(string):
   freq_count = Counter(string) # get dictionary with letters as key and frequency as value
   for key in freq_count.keys():
      if freq_count.get(key) > 1: # for all different keys, list the letters and frequencies
         print("(" + key + ", " + str(freq_count.get(key)) + ")")
      myStr = 'Hello World. Let’s learn Python'    
      calc_char_freq(myStr)

출력

(e, 3)
(l, 4)
(o, 3)
( , 4)
(r, 2)
(t, 2)
(n, 2)