•
문제 설명 : 제공된 두 문자열이 조건에 맞도록 “비슷한” 문자인지 반환
•
풀이 방법
◦
코드 자체를 작성하는 것은 어렵지 않았다.
◦
단지 문제에서 나타낸 2가지 조건을 어떻게 구분할 수 있냐는 것이다.
▪
우선 길이에 대한 변화가 없다.
▪
구성하는 문자의 요소가 동일하다
▪
2번 조건에 따르면, 변경할 2개의 문자 요소가 각각 가지고 있는 갯수의 쌍은 일치한다.
•
이말은 아래 예시와 같다.
•
EX) a → 1개 / b → 4개 (1, 4) → a → 4개 / b → 1개 (1, 4)
◦
특정 알파벳이 몇개인지 작성된 iterator(values 사용 결과)의 sorted 를 처리한 것이기 때문에 문자열의 길이와는 시간 복잡도 관계가 없다.
•
시간복잡도 :
•
성공 코드
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
복사