classSolution{public:boolisAnagram(string s, string t){int record[26]={0};for(int i =0; i < s.size(); i++){// 并不需要记住字符a的ASCII,只要求出一个相对数值就可以了
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){// record数组如果有的元素不为零0,说明字符串s和t 一定是谁多了字符或者谁少了字符。returnfalse;}}// record数组所有元素都为零0,说明字符串s和t是字母异位词returntrue;}};
classSolution{public:// 取数值各个位上的单数之和intgetSum(int n){int sum =0;while(n){
sum +=(n %10)*(n %10);
n /=10;}return sum;}boolisHappy(int n){
unordered_set<int> set;while(1){int sum =getSum(n);if(sum ==1){returntrue;}// 如果这个sum曾经出现过,说明已经陷入了无限循环了,立刻return falseif(set.find(sum)!= set.end()){returnfalse;}else{
set.insert(sum);}
n = sum;}}};