您的位置:首页 > 健康 > 美食 > 438 找到字符串中所有字母异位词

438 找到字符串中所有字母异位词

2024/10/5 20:17:30 来源:https://blog.csdn.net/Noric_/article/details/142264940  浏览:    关键词:438 找到字符串中所有字母异位词

在这里插入图片描述
解题思路:
\qquad 这个题目解法没什么特别的,遍历所有子串,比较与目标字符串是否满足异位词即可。唯一需要注意的是,提示sp仅包含小写字母,且异位词不关心字符的顺序,可以使用长度为26的数组,通过记录26个字母的个数来比较,减少时间复杂度。

	vector<int> findAnagrams(string s, string p) {vector<int> aim(26);vector<int> curr(26);vector<int> res;if(s.length() < p.length()) return res;for(int i = 0; i < p.length(); i++){aim[p[i] - 'a']++;curr[s[i] - 'a']++;}if(aim == curr){res.push_back(0);}for(int n = 0; n < s.length() - p.length(); n++){curr[s[n+p.length()] - 'a']++;curr[s[n] - 'a']--;if(curr == aim){res.push_back(n+1);}}return res;}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com