Python 철자 바꾸기 검사기

Python에서 문자 구성을 비교하여 두 문자열이 철자 바꾸기인지 확인합니다.

에디터에서 사용해 보세요

개요

두 문자열은 동일한 빈도의 동일한 문자를 포함하지만 순서는 다르지만(예: "listen" 및 "silent") 철자 바꾸기입니다.

철자 바꾸기를 확인하는 우아한 방법은 문자열을 정리하고(공백 및 소문자 제거) 해당 문자를 정렬하고 정렬된 목록이 동일한지 확인하는 것입니다.

이 정렬 방식은 O(k log k) 시간에 실행됩니다. 여기서 k는 문자열 길이이며 짧은 텍스트 검사에 최적입니다.

코드 및 실행 출력

문자 정렬을 통해 철자법 상태에 대한 단어 쌍을 확인합니다.

def is_anagram(str1, str2):
    s1 = sorted(str1.lower().replace(" ", ""))
    s2 = sorted(str2.lower().replace(" ", ""))
    return s1 == s2

word1, word2 = "listen", "silent"
print(f"Are '{word1}' and '{word2}' anagrams? {is_anagram(word1, word2)}")

word3, word4 = "hello", "world"
print(f"Are '{word3}' and '{word4}' anagrams? {is_anagram(word3, word4)}")
터미널 출력
Are 'listen' and 'silent' anagrams? True
Are 'hello' and 'world' anagrams? False

단계별 구현

  • 텍스트 분석 및 언어 비교 엔진
  • 문자열 퍼즐 디자인 및 검증 시스템
  • 기술 면접 코딩 작업

자주 묻는 질문

O(n) 선형 시간 안에 이 문제를 해결할 수 있는 방법이 있나요?

예! 정렬하는 대신 해시 맵이나 Python의 `collections.Counter`를 사용하여 문자 빈도를 계산하고 결과 빈도 맵을 비교할 수 있습니다.

관련 주제