题目描述
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1: 输入: s = "anagram", t = "nagaram" 输出: true
示例 2: 输入: s = "rat", t = "car" 输出: false
说明: 你可以假设字符串只包含小写字母。
本题思路
class Solution {
public:
bool isAnagram(string s, string t) {
int nums[26] = {0};
for (int i = 0; i < s.size(); i++) {
nums[s[i] - 'a']++;
}
for (int i = 0; i < t.size(); i++) {
nums[t[i] - 'a']--;
}
for (int i = 0; i < 26; i++) {
if (nums[i] != 0) {
return false;
}
}
return true;
}
};
思路很简单,一共二十六个字母,利用辅助数组。先对一个字符串进行统计,在对另外一个字符串的进行统计,字符出现一次,对应数组中的数量-1。最后在对辅助数组进行遍历,全都为0那么两字符串为字母异位词。