LeetCode 每日一題 242. 有效的字母異位詞

1. 題目

242. 有效的字母異位詞

2. 描述

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

示例 1:

輸入: s = “anagram”, t = “nagaram”
輸出: true
示例 2:

輸入: s = “rat”, t = “car”
輸出: false

3. 思路

  1. 首先長度對比,不同則不是
  2. 其次用一個長爲 26 的數組來表示各個字符出現的次數
  3. 將出現在字符串 s 裏的字符個數加 1
  4. 出現在字符串 t 裏的字符個數減 1
  5. 最後判斷每個小寫字母的個數是否都爲 0
  6. 此時主要是進行遍歷操作,時間複雜度爲 O(n)O(n)

4. 實現

public boolean isAnagram(String s, String t) {
    // 對比長度,長度不同則不是
    if (s.length() != t.length()) {
        return false;
    }

    /* 用一個長爲 26 的數組來表示各個字符出現的次數
         *  將出現在字符串 s 裏的字符個數加 1
         * 出現在字符串 t 裏的字符個數減 1
         * 最後判斷每個小寫字母的個數是否都爲 0
         */
    int[] chaCount = new int[26];
    for (int i = 0; i < s.length(); i++) {
        chaCount[s.charAt(i) - 'a']++;
        chaCount[t.charAt(i) - 'a']--;
    }
    for (int item : chaCount) {
        if (item != 0) {
            return false;
        }
    }

    return true;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章