두 문자열이 같은 문자를 가지지만 다른 순서로 배열되는 경우 이를 아나그램이라고 합니다. 예를 들어, 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