242 . 有效的字母異位詞(簡單)
方法:哈希表
思路
- 首先判斷兩個字符串長度是否相等,不相等直接返回 false;
- 接下來設置一個長度為26 的哈希表,分別對應26個小寫字母;遍歷兩個字符串,對于 s 出現的字符在 vocabulary 對應位置 +1, 對于 t 出現的字符在 vocabulary 對應位置 -1 。
- 最后遍歷 vocabulary,如果值都為 0 ,說明二者是異位詞,否則返回 false。
代碼
class Solution {
public:bool isAnagram(string s, string t) {vector<int> vocabulary(26, 0);if(s.size() != t.size()) return false;for(int i=0; i<s.size(); ++i) {vocabulary[s[i] - 'a'] ++;vocabulary[t[i] - 'a'] --;} for(int i=0; i<26; ++i){if(vocabulary[i] != 0) return false;}return true;}
};