C語言重構【242】有效的字母異位詞

椰子奶糖發表於2020-10-21

所有題目原始碼:Git地址

題目

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

示例 1:

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

輸入: s = "rat", t = "car"
輸出: false
說明:
你可以假設字串只包含小寫字母。

進階:
如果輸入字串包含 unicode 字元怎麼辦?你能否調整你的解法來應對這種情況?

方案:

class Solution {
public:
    bool isAnagram(string s, string t) {
            int len = s.length();
            vector<int> v(26,0);
            if (t.length()!=len)
            {
                return false;
            }
            for (int i = 0; i < len; i++)
            {
               v[s[i]-'a']++;
               v[t[i]-'a']--;
            }
            for (int i = 0; i < 26; i++)
            {
                if(v[i]!=0) return false;
            }
            return true;
    }
};
複雜度計算
  • 時間複雜度:O(n)
  • 空間複雜度:O(1)

相關文章