애너그램은 기본적으로 주어진 문자열이나 패턴의 모든 순열입니다. 이 패턴 검색 알고리즘은 약간 다릅니다. 이 경우 정확한 패턴만 검색되는 것이 아니라, 텍스트에서 주어진 패턴의 가능한 모든 배열을 검색합니다. 따라서 입력이 "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