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

Leetcode205.同構字串

題目連結:205.同構字串
程式碼:

class Solution {
    public boolean isIsomorphic(String s, String t) {
        if(s.length() != t.length()) return false;
        char[] map = new char[128];
        int[] set = new int[128];
        for(int i=0; i<s.length(); i++){
            if(map[s.charAt(i)] != '\0' && map[s.charAt(i)] != t.charAt(i)){
                return false;
            }
            if(map[s.charAt(i)] == '\0' && set[t.charAt(i)] == 1){
                return false;
            }
            map[s.charAt(i)] = t.charAt(i);
            set[t.charAt(i)] = 1;
        }
        return true;
    }
}

筆記

  • 輸入資料只侷限於字串,那麼可以直接使用長度為128的陣列對輸入的字元進行儲存。使用集合類會影響速度,將集合類改為陣列後,執行時間變化為22ms -> 11ms。
  • 事實證明,直接訪問陣列比使用集合類的操作來得更快。將輸入的字串改為字元陣列 char[] ss = s.toCharArray();後,執行時間變化為11ms->4ms。