LeetCode205. 同構字串
阿新 • • 發佈:2020-12-10
一、題目描述
二、解法
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; } }