소개
애너그램 (anagram) 은 다른 단어나 구절의 문자를 재배열하여 형성된 단어나 구절입니다. 예를 들어, "listen"은 "silent"의 애너그램입니다. 이 챌린지에서는 두 문자열이 서로의 애너그램인지 확인하는 함수를 작성하라는 요청을 받게 됩니다.
애너그램 (anagram) 은 다른 단어나 구절의 문자를 재배열하여 형성된 단어나 구절입니다. 예를 들어, "listen"은 "silent"의 애너그램입니다. 이 챌린지에서는 두 문자열이 서로의 애너그램인지 확인하는 함수를 작성하라는 요청을 받게 됩니다.
두 문자열을 인수로 받아 서로의 애너그램이면 True를, 그렇지 않으면 False를 반환하는 함수 is_anagram(s1, s2)를 작성하십시오. 이 함수는 대소문자를 구분하지 않으며, 공백, 구두점 및 특수 문자를 무시해야 합니다.
이 문제를 해결하려면 다음 단계를 따를 수 있습니다.
str.isalnum()을 사용하여 영숫자가 아닌 문자를 필터링하고, str.lower()를 사용하여 각 문자를 소문자로 변환합니다.collections.Counter를 사용하여 각 문자열에 대한 결과 문자를 세고 결과를 비교합니다.from collections import Counter
def is_anagram(s1, s2):
return Counter(
c.lower() for c in s1 if c.isalnum()
) == Counter(
c.lower() for c in s2 if c.isalnum()
)
is_anagram('#anagram', 'Nag a ram!') ## True
이 챌린지에서는 두 문자열이 서로의 애너그램인지 확인하는 방법을 배웠습니다. str.isalnum()을 사용하여 영숫자가 아닌 문자를 필터링하고, str.lower()를 사용하여 각 문자를 소문자로 변환했으며, collections.Counter를 사용하여 각 문자열에 대한 결과 문자를 세고 결과를 비교했습니다.