1. 程式人生 > >leetcode 242 有效的字母異位詞

leetcode 242 有效的字母異位詞

給定兩個字串 s 和 t ,編寫一個函式來判斷 t 是否是 s 的一個字母異位詞。

示例 1:

輸入: s = "anagram", t = "nagaram" 輸出: true

示例 2:

輸入: s = "rat", t = "car" 輸出: false

 

public boolean isAnagram (String s, String t){
    //建立一個char ascii的陣列對應表
    int[] charsMap = new int['z' - 'a' + 1];

    //遍歷陣列
    for (char c : s.toCharArray()) {
        //取減去97後的碼值
        int pos = c - 'a';
        //將對應位置的陣列值+1,預設為0
        charsMap[pos]++;
    }

    for (char c : t.toCharArray()) {
        
        int pos = c - 'a';
        //同理將對應位置的陣列值-1
        charsMap[pos]--;
    }
    
    //如果兩個字串相等,那麼其對應碼值上的陣列值應為0
    //比如s字串中有a,那麼在對應數組裡的對應位置+1,
    //如果t字串中也有a,那麼陣列對應的位置就應該-1,最後變成0
    for (int count : charsMap) {
        if (count != 0) {
            return false;
        }
    }

    return true;
}