题目链接
场景:判断某个元素是否出现过
思路:考虑使用哈希表
解法一:哈希数组. 由题意可知字符均为小写英文字母,数量有限,可以使用哈希数组。
class Solution {
public:bool isAnagram(string s, string t) {
if(s.length() != t.length()) return false;int cnt[26] = {
0};for(int i = 0; i < s.length(); i++){
cnt[s[i] - 'a']++;}for(int i = 0; i < t.length(); i++){
cnt[t[i] - 'a']--;}for(int i=0;i<26;i++){
if(cnt[i]!=0) return false;}return true;}
};
Unicode进阶:考虑使用map容器
class Solution {
public:bool isAnagram(string s, string t) {
//Unicode进阶if(s.length() != t.length()) return false;unordered_map<char, int> hashmap;for(auto i:s){
hashmap[i]++;}for(auto i:t){
hashmap[i]--;}for(auto i:hashmap){
if(i.second!=0) return false;}return true;}
};