242.有效的字母異位詞
阿新 • • 發佈:2022-03-20
題目
給定兩個字串 s 和 t ,編寫一個函式來判斷 t 是否是 s 的字母異位詞。注意:若 s 和 t 中每個字元出現的次數都相同,則稱 s 和 t 互為字母異位詞。
示例1:
輸入: s = "anagram", t = "nagaram"
輸出: true
示例2:
輸入: s = "anagram", t = "nagaram"
輸出: true
解題思路
暴力排序
直接排完序再比較兩個字串是否相同
class Solution { public: bool isAnagram(string s, string t) { if((int)s.size() != (int)t.size()) { return false; } sort(s.begin(), s.end()); sort(t.begin(), t.end()); return s == t; } };
雜湊表
class Solution { public: bool isAnagram(string s, string t) { if(s.length()!=t.length())return false;//如果兩個字串長度不等,直接返回false int length=s.length(); int hashmap[26]={0};//建立一個對應26個字母的雜湊表,初始化為0 for(int i=0;i<length;i++) { hashmap[s[i]-'a']++;//s負責加 hashmap[t[i]-'a']--;//t負責減 } for(int i=0;i<26;i++) { if(hashmap[i]!=0)return false; } return true;//若最後雜湊表所有的值為0則匹配成功 } };