给定两个字符串
s和t,编写一个函数来判断t是否是s的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram" 输出: true
示例 2:
输入: s = "rat", t = "car" 输出: false
提示:
1 <= s.length, t.length <= 5 * 104s 和 t 仅包含小写字母t 是 s 的异位词等价于两个字符串中字符出现的种类和次数均相等。由于字符串只包含 26个小写字母,因此我们可以维护一个长度为 26的频次数组a ,先遍历记录字符串 s中字符出现的频次,然后遍历字符串 t,减去数组a中对应的频次,最后在检查遍历数组a,如果出现a[i]!=0,则说明 t 包含一个不在 s中的额外字符,返回 false即可。
- class Solution {
- public:
- bool isAnagram(string s, string t) {
- int a[26]={0};
- for(char str:s)
- a[str-'a']++;
-
- for(char str:t)
- a[str-'a']--;
-
- for(int i=0;i<26;i++)
- {
- if(a[i]!=0)
- return false;
- }
- return true;
-
- }
- };