leetcode 205. 동형 문자열 인덱스 및 해시 (해시)

예 1 :

입력 : s = "egg", t = "add"
출력 : true

예 2 :

입력 : s = "foo", t = "bar"
출력 : false

예 3 :

입력 : s = "paper", t = "title"
출력 : true

질문에서 s와 t의 기본 길이가 같으
므로 s와 t의 길이가 같은지 판단 할 필요가 없습니다.

1. 단순 인덱스 탐색 첫
번째는 가장 간단한 인덱스 함수 방법입니다.
문자가 반복되면 index는 기본적으로 처음 찾은 값을 반환합니다.
s
에서 반복 되지만 t에서 반복되지 않으면 반복 된 값을 탐색 할 때 :
반복 된 값에 대해 반복 된
값을 반환 합니다. 첫 번째 숫자의 인덱스를 반환하지만 t가 반복되지 않으면 반환 된 인덱스 값이 다릅니다.

class Solution:
    def isIsomorphic(self, s: str, t: str) -> bool:
        for i in range(0, len(s)):
            if s.index(s[i]) != t.index(t[i]):
                return False
        return True 

둘째, 해시 테이블
해시 테이블을 사용하여 쓰기에 확실히 골칫거리이지만, 크게, 시간 복잡성을 줄이고 운영 효율성을 향상시킬 수있는
키 문자로 최초의 문자 값 t에 매핑되는되는
문자의 완전히 교체해야하기 때문
에 추가하기 때문에 s에있는 문자가 t에있는 문자에
매핑되는지 여부를 판단합니다 . 마지막으로 해시 테이블에있는 s의 매핑 값이 t에있는 해당 값과 동일한 지 (유일한 지)
판단합니다. s에 해당하는 매핑이 다른 경우 ( 고유하지 않음), False 반환

class Solution:
    def isIsomorphic(self, s: str, t: str) -> bool:
        hash_map = {
    
    }

        for i in range(len(s)):

            if s[i] not in hash_map:
                if t[i] in hash_map.values():
                    return False
                else:
                    hash_map[s[i]] = t[i]
                    
            else:
                if hash_map[s[i]] != t[i]:
                    return False
        return True

추천

출처blog.csdn.net/weixin_50791900/article/details/111771821