본문 바로가기
알고리즘

[LeetCode] 205. Isomorphic Strings (golang)

by 참새는 짹짹 2021. 6. 2.

문제


Isomorphic Strings - LeetCode
Given two strings s and t, determine if they are isomorphic. Two strings s and t are isomorphic if the characters in s can be replaced to get t. All occurrences of a character must be replaced with another character while preserving the order of characters.
https://leetcode.com/problems/isomorphic-strings/
  • 구조가 같은 문자열 구분

구현


  • 각 문자열의 문자를 키로 받는 맵을 두 문자열 각각 생성
  • 문자열을 탐색하며 각 맵에 각 문자의 위치를 저장 ( 맵에 이미 저장되어 있지 않을 때만 )
  • 각 맵의 값을 확인하여 일치하는지 확인

시간 복잡도
  • 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
    }

댓글