Search

Determine if Two Strings Are Close

문제 설명 : 제공된 두 문자열이 조건에 맞도록 “비슷한” 문자인지 반환
풀이 방법
코드 자체를 작성하는 것은 어렵지 않았다.
단지 문제에서 나타낸 2가지 조건을 어떻게 구분할 수 있냐는 것이다.
우선 길이에 대한 변화가 없다.
구성하는 문자의 요소가 동일하다
2번 조건에 따르면, 변경할 2개의 문자 요소가 각각 가지고 있는 갯수의 쌍은 일치한다.
이말은 아래 예시와 같다.
EX) a → 1개 / b → 4개 (1, 4) → a → 4개 / b → 1개 (1, 4)
특정 알파벳이 몇개인지 작성된 iterator(values 사용 결과)의 sorted 를 처리한 것이기 때문에 문자열의 길이와는 시간 복잡도 관계가 없다.
시간복잡도 : O(N)O(N)
성공 코드
from collections import Counter, defaultdict class Solution: def closeStrings(self, word1: str, word2: str) -> bool: if len(word1) != len(word2): return False word1_info = Counter(word1) word2_info = Counter(word2) return word1_info.keys() == word2_info.keys() and sorted(word1_info.values()) == sorted(word2_info.values())
Python
복사