애너그램은 기본적으로 주어진 문자열이나 패턴의 모든 순열입니다. 이 패턴 검색 알고리즘은 약간 다릅니다. 이 경우 정확한 패턴만 검색되는 것이 아니라, 텍스트에서 주어진 패턴의 가능한 모든 배열을 검색합니다. 따라서 입력이 "ANAGRAM" 및 "NAAGARM"이면 아나그램이지만 "cat" 및 "fat"는 아나그램이 아닙니다.
이를 해결하기 위해 문자열을 문자 목록으로 변환한 다음 정렬합니다. 두 개의 정렬된 목록이 같으면 아나그램입니다.
예제(파이썬)
더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −
class Solution(object):
def isAnagram(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
return "".join(sorted(s)) == "".join(sorted(t))
ob1 = Solution()
print(ob1.isAnagram("ANAGRAM","NAAGARM")) 입력
s = "ANAGRAM" t = "NAAGARM"
출력
true