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

和14题几乎一样,毫无意义。

在这里插入图片描述

唯一需要记忆的点是list,List list=new ArrayList();
ArrayList不是继承List接口,是实现了List接口。 写成ArrayList arrayList = newArrayList();这样不会有任何问题,list只是一个接口。

class Solution {
    
    
    public List<Integer> findAnagrams(String s, String p) {
    
    
            List<Integer> res = new ArrayList<Integer>();
            char[] a = p.toCharArray();
            char[] need = new char[26];
            char[] b = s.toCharArray();
            char[] window = new char[26];
            int start = 0;
            for(int i=0;i<a.length;i++){
    
    
                need[a[i]-'a']++;
            }
            for(int end=0;end<b.length;end++){
    
    
                if(end-start>a.length-1) {
    
    
                    window[b[start]-'a']--;
                    start++;
                }
                window[b[end]-'a']++;
                if(Arrays.equals(need,window)) res.add(start);
            }
            return res;

    }
}

Guess you like

Origin blog.csdn.net/qq_37772958/article/details/121858762