classSolution{public:boolisAnagram(string s, string t){int record[26]={0};//记录s中每个字母出现的次数for(int i =0; i < s.size(); i++){
record[s[i]-'a']++;}//在遍历字符串t的时候,对t中出现的字符映射哈希表索引上的数值再做-1的操作for(int i =0; i < t.size(); i++){
record[t[i]-'a']--;}//如果record数组所有元素都为零0,说明字符串s和t是字母异位词,return true。for(int i =0; i <26; i++){if(record[i]!=0){returnfalse;}}returntrue;}};
go:
funcisAnagram(s string, t string)bool{iflen(s)!=len(t){returnfalse}
exists :=make(map[byte]int)//记录s中每个字母出现的次数for i :=0; i <len(s); i++{if v,ok := exists[s[i]];v >0&& ok{//s中存在这个元素
exists[s[i]]= v+1}else{//s中不存在这个元素
exists[s[i]]=1}}//在遍历字符串t的时候,对t中出现的字符映射哈希表索引上的数值再做-1的操作for i :=0; i <len(t); i++{if v,ok := exists[t[i]]; v >0&& ok{//t中存在这个元素
exists[t[i]]= v-1}else{returnfalse}}returntrue}
funcisAnagram(s string, t string)bool{
record :=[26]int{}for_,r :=range s{
record[r -rune('a')]++//rune 等同于int32,常用来处理unicode或utf-8字符}for_,r :=range t{
record[r -rune('a')]--}return record ==[26]int{}}