给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
输入: s = "anagram", t = "nagaram" 输出: true
输入: s = "rat", t = "car" 输出: false
1 <= s.length, t.length <= 5 * 104 s 和 t 仅包含小写字母
class Solution { public: bool isAnagram(string s, string t) { if(s.size()!=t.size())return false; int cnt1[127]={0}; int cnt2[127]={0}; for(int i=0;i<s.size();i++){ cnt1[int(s[i])]++; cnt2[int(t[i])]++; } for(int i=0;i<s.size();i++){ if(cnt1[int(s[i])]!=cnt2[int(s[i])]) return false; } //两边计数,检验 return true; } };
总结:关于对字符串中字符计数有关的问题,字符计数数组常可拿来直接套用。