给定两个字符串 s 和 t,编写一个函数来判断 t 是否是 s 的 字母异位词。
要判断两个字符串是否为字母异位词,可以统计两个字符串中每个字符的数量,然后比较两个计数器是否相等。可以利用哈希表来记录每个字符出现的次数,遍历第一个字符串时增加计数,遍历第二个字符串时减少计数。最终检查哈希表中所有的计数器是否为0,如果是,则说明两个字符串是字母异位词。
C++实现
- class Solution {
- public:
- bool isAnagram(string s, string t) {
- int hash[26]={0};
- for(int i=0;i
size();i++) - {
- hash[s[i]-'a']++;
- }
- for(int i=0;i
size();i++) - {
- hash[t[i]-'a']--;
- }
- for(int i=0;i<26;i++)
- {
- if(hash[i]!=0)
- {
- return false;
- }
- }
- return true;
- }
- };
通过使用哈希表记录字符出现的次数,我们可以高效地判断两个字符串是否为字母异位词。这种方法减少了额外内存的消耗,同时在线性时间复杂度内(O(n))完成了判断操作