하나의 문자열이 제공됩니다. 우리의 임무는 주어진 문자열에서 빈도가 둘 이상인 문자를 찾는 것입니다.
예를 들어 "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)