1. 程式人生 > 其它 >【LeetCode】每日一題205. 同構字串

【LeetCode】每日一題205. 同構字串

技術標籤:每日一題javaleetcode字串

205. 同構字串

給定兩個字串 s 和 t,判斷它們是否是同構的。

如果 s 中的字元可以被替換得到 t ,那麼這兩個字串是同構的。

所有出現的字元都必須用另一個字元替換,同時保留字元的順序。兩個字元不能對映到同一個字元上,但字元可以對映自己本身。

示例 1:

輸入: s = "egg", t = "add"
輸出: true

示例 2:

輸入: s = "foo", t = "bar"
輸出: false

示例 3:

輸入: s = "paper"
, t = "title" 輸出: true

說明:

  • 你可以假設 s 和 t 具有相同的長度。

方法一:雜湊表

互建雜湊表,不匹配則不是 同構字串

public boolean isIsomorphic(String s, String t) {
    Map<Character, Character> map1 = new HashMap<>();
    Map<Character, Character> map2 = new HashMap<>();
    for (int i = 0; i < s.length
(); i++) { char sc = s.charAt(i); char tc = t.charAt(i); if (map1.containsKey(sc) && map1.get(sc) != tc) { return false; } if (map2.containsKey(tc) && map2.get(tc) != sc) { return false; } map2.put(tc, sc)
; map1.put(sc, tc); } return true; }

執行結果

在這裡插入圖片描述