Javascript에서 두 문자열이 서로 동형인지 확인하는 방법

두 문자열 str1과 str2는 str1의 모든 문자와 str2의 모든 문자에 대해 가능한 일대일 매핑이 있는 경우 동형이라고 합니다. 그리고 'str1'의 모든 문자는 'str2'의 동일한 문자에 매핑됩니다.

Input:  str1 = "aab", str2 = "xxy"
Output: True
'a' is mapped to 'x' and 'b' is mapped to 'y'.

Input:  str1 = "aab", str2 = "xyz"
Output: False
One occurrence of 'a' in str1 has 'x' in str2 and 
other occurrence of 'a' has 'y'.


해결책은 매우 간단합니다. 'str1'의 모든 문자를 고려하고 모든 항목이 'str2'의 동일한 문자에 매핑되는지 확인합니다.

해시 맵을 유지하고 각 문자를 str1에 키로 저장하고 문자를 str2에 동일한 인덱스 값으로 저장합니다.

<script>
    function isIsomorphic(str1, str2) {
        var obj = {};
        for (let i = 0; i < str1.length; i++) {
            if (!obj[str1[i]]) {
                obj[str1[i]] = str2[i];
            } else {
                if (obj[str1[i]] !== str2[i]) {
                    return false;
                }
            }
        }
        return true;
    }
    console.log(isIsomorphic("abc", "xyz"));
</script>


이것이 누군가를 돕기를 바랍니다. Javascript에서 더 많은 알고리즘 질문이 필요하면 의견을 말하십시오.

좋은 웹페이지 즐겨찾기