문제
- 구조가 같은 문자열 구분
구현
- 각 문자열의 문자를 키로 받는 맵을 두 문자열 각각 생성
- 문자열을 탐색하며 각 맵에 각 문자의 위치를 저장 ( 맵에 이미 저장되어 있지 않을 때만 )
- 각 맵의 값을 확인하여 일치하는지 확인
시간 복잡도
- O(N)
코드
func isIsomorphic(s string, t string) bool { var sMap,tMap map[byte]int sMap = make(map[byte]int) tMap = make(map[byte]int) for i:=0;i<len(s);i++ { if _, ok := sMap[s[i]]; !ok { sMap[s[i]] = i } if _, ok := tMap[t[i]]; !ok { tMap[t[i]] = i } if sMap[s[i]] != tMap[t[i]] {return false} } return true }
'알고리즘' 카테고리의 다른 글
[LeetCode] 104. Maximum Depth of Binary Tree (golang) (0) | 2021.06.07 |
---|---|
[LeetCode] 66. Plus One (golang) (0) | 2021.06.02 |
[LeetCode] 572. Subtree of Another Tree (golang) (0) | 2021.06.01 |
[LeetCode] 455. Assign Cookies (golang) (0) | 2021.06.01 |
백준 5904 (0) | 2021.01.24 |
댓글