1. 程式人生 > 實用技巧 >LeetCode205. 同構字串

LeetCode205. 同構字串

一、題目描述

二、解法

class Solution {
    public boolean isIsomorphic(String s, String t) {
        if (s.length() != t.length()) return false;
        /**
         *  方法1:使用HashMap,與LeetCode290題類似
         */
        /*
        Map<Character,Character> map = new HashMap<>();
        for (int i = 0; i < s.length(); i++) {
            char key = s.charAt(i);
            char c = t.charAt(i);
            if (!map.containsKey(key)) {
                if (map.containsValue(c)) {
                    return false;
                }
                map.put(key,c);
            }else {
                if (!map.get(key).equals(c)) {
                    return false;
                }
            }
        }
        return true;
        
*/ /** * 方法2:使用陣列模擬雜湊表 * 思路:分別記錄兩個字串每個字母上一次的對映,初始時都對映到 0 */ int[] mapS = new int[256]; int[] mapT = new int[256]; for (int i = 0; i < s.length(); i++) { if (mapS[s.charAt(i)] != mapT[t.charAt(i)]) { return false
; } mapS[s.charAt(i)] = i + 1; // 方便記錄對映的順序 mapT[t.charAt(i)] = i + 1; } return true; } }