剑指 Offer II 015. 字符串中的所有变位词

剑指 Offer II 015. 字符串中的所有变位词

剑指 Offer II 015. 字符串中的所有变位词

和 剑指14题一样,几乎不用改核心代码,在判断是变位词的时候,保存一下 left下标即可。

class Solution {
    public List<Integer> findAnagrams(String s2, String s1) {
        int [] cut =new int [26];
        List<Integer> res =new  ArrayList();
        for(int i=0 ;i< s1.length();i++){
            cut[s1.charAt(i)-'a']--;
        }
        int left =0;
        // 初始化窗口:[left,right]
        for(int right=0;right<s2.length();right++){
            int index=s2.charAt(right)-'a';
            cut[index]++; // right 窗口右移
            while(cut[index]>0){
                cut[s2.charAt(left++)-'a']--; // left 窗口右移
            }
            if(right-left+1==s1.length()){
                res.add(left);
            }
        }
        return res;
    }
}
上一篇:嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三)配置网络环境


下一篇:Java之旅 Day1 预科