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

Collections.Counter()를 사용하여 Python에서 아나그램 검사

<시간/>

두 문자열이 같은 문자를 가지지만 다른 순서로 배열되는 경우 이를 아나그램이라고 합니다. 예를 들어, spot과 post는 같은 글자가 다른 단어를 형성하기 때문에 아나그램입니다. 이 기사에서는 두 문자열이 서로의 아나그램인지 여부를 어떻게 확인할 수 있는지 알아보겠습니다.

이를 위해 우리는 컬렉션이라는 파이썬 모듈을 사용합니다. 이것은 list, dict, set, tuple 등과 같은 데이터 컬렉션을 저장하는 데 사용됩니다. 이것들은 내장 컬렉션의 예입니다. counter() 함수 단순히 요소가 컬렉션에 있는 횟수를 계산하고 결과를 요소와 해당 개수를 보여주는 사전으로 반환합니다. 따라서 두 문자열에 포함된 각 문자의 수가 일치하는 경우 이를 아나그램으로 간주합니다.

from collections import Counter
StringA = 'top spot'
StringB = 'pot post'
# Print the elements as adictionary
print Counter(StringA)
print Counter(StringB)
# Compare the dictionaries
if Counter(StringA)== Counter(StringB):
print 'StringA and StringB are Anagrams'

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Counter({'p': 2, 't': 2, 'o': 2, 's': 1, ' ': 1})
Counter({'p': 2, 't': 2, 'o': 2, 's': 1, ' ': 1})
StringA and StringB are Anagrams