当前位置:首页 > 编程笔记 > 正文
已解决

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

来自网友在路上 180880提问 提问时间:2023-11-01 19:57:59阅读次数: 80

最佳答案 问答题库808位专家为你答疑解惑

原题链接:力扣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;}
};
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"力扣242.有效字母的异位词":http://eshow365.cn/6-29573-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!