題目鏈接
這題思路比較簡單,考慮到26個小寫字母的ASCII是連續的,那么我們可以設置一個size為26的哈希表record
,然后記錄26個字母分別在string中出現的次數。例如,record[0]
記錄的是字母‘a’
出現的次數。于是我們主要就是要獲得每個出現字母的下標,這里我們可以通過s[i]-'a'
計算出。
class Solution {
public:bool isAnagram(string s, string t) {int record[26] = {0};for(int i = 0; i < s.size(); i++){record[s[i]-'a']++;}for(int i = 0; i < t.size(); i++){record[t[i]-'a']--;}for(int i = 0; i < 26; i++){if(record[i]!=0) return false;}return true;}
};