力扣242.有效字母的异位词

原题链接:力扣242.有效字母的异位词

要记住的就是,需要判断元素是否出现过,或者是否在集合里存在,就可以考虑用哈希法去做
思路:
可以使用数组作为映射 使用hash法来进行对比
先进行对字符串s进行一次遍历,字符串中的每个字符减去 ‘a’ 时,就能得到当前字符对应的下标,此时下标++(出现次数+1).
再对字符串t进行一次遍历,依旧是每个字符减去’a’,就能得到当前字符对应的下标,此时下标–(出现次数-1)
最终如果数组hash内每个元素都的值都为0 则代表两个字符串出现的字符次数相同,因为相加又相减,返回true。若不为0,则代表出现的字符次数不同,故返回false

class Solution {
public:
    bool isAnagram(string s, string t) {
        //用数组做映射 范围是0~25  26个英文字母
        int hash[26] = {0};
        for(int i = 0; i < s.size(); i++)
        {
            hash[s[i] - 'a']++;
        }
        for(int i = 0; i< t.size(); i++)
        {
            hash[t[i] - 'a']--;
        }
        for(int i = 0; i < 26; i++)
        {
            if(hash[i] != 0)
            {
                return false;
            } 

        }
        return true;
    }
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值