和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;
}
}