沃尔玛公司网站建设案例分析,唐山网站建设方案咨询,个人网站建设方案书备案,临海建设局官方网站leetcode
****1111
给定两个字符串 s 和 p#xff0c;找到 s 中所有 p 的 异位词 的子串#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。
异位词 指由相同字母重排列形成的字符串#xff08;包括相同的字符串#xff09;。
示例 1:输入: s cbaebaba…leetcode
****1111
给定两个字符串 s 和 p找到 s 中所有 p 的 异位词 的子串返回这些子串的起始索引。不考虑答案输出的顺序。
异位词 指由相同字母重排列形成的字符串包括相同的字符串。
示例 1:输入: s cbaebabacd, p abc
输出: [0,6]
解释:
起始索引等于 0 的子串是 cba, 它是 abc 的异位词。
起始索引等于 6 的子串是 bac, 它是 abc 的异位词。示例 2:输入: s abab, p ab
输出: [0,1,2]
解释:
起始索引等于 0 的子串是 ab, 它是 ab 的异位词。
起始索引等于 1 的子串是 ba, 它是 ab 的异位词。
起始索引等于 2 的子串是 ab, 它是 ab 的异位词。提示:1 s.length, p.length 3 * 10^4
s 和 p 仅包含小写字母thought:根据题目要求我们需要在字符串 sss 寻找字符串 ppp 的异位词。因为字符串 ppp 的异位词的长度一定与字符串 ppp 的长度相同所以我们可以在字符串 sss 中构造一个长度为与字符串 ppp 的长度相同的滑动窗口并在滑动中维护窗口中每种字母的数量当窗口中每种字母的数量与字符串 ppp 中每种字母的数量相同时则说明当前窗口为字符串 ppp 的异位词。作者力扣官方题解
链接https://leetcode.cn/problems/find-all-anagrams-in-a-string/solutions/1123971/zhao-dao-zi-fu-chuan-zhong-suo-you-zi-mu-xzin/
来源力扣LeetCode
著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。class Solution {public ListInteger findAnagrams(String s, String p) {int sLen s.length(),pLen p.length();if(sLenpLen){return new ArrayListInteger();}ListInteger res new ArrayListInteger();int sCount[] new int[26];int pCount[] new int[26];for(int i 0; ipLen;i){sCount[s.charAt(i)-a];pCount[p.charAt(i)-a];}if(Arrays.equals(sCount,pCount)){res.add(0);}for(int i 0;isLen-pLen;i){sCount[s.charAt(i)-a]--;sCount[s.charAt(ipLen)-a];if(Arrays.equals(sCount,pCount)){res.add(i1);}}return res;}
}