然后将count清空,继续找。
//字符串的模式匹配变型
import java.util.*;
public class Solution {
public ArrayList<Integer> findSubstring(String s, String[] strs) {
ArrayList<Integer> array=new ArrayList();
if(s == null||s.length() == 0||strs == null||strs.length == 0||s.length() < strs[0].length()){
return array;
}
HashMap<String,Integer> map=new HashMap();
for(int i=0;i<strs.length;i++){//统计每个串出现的次数
if(!map.containsKey(strs[i])){
map.put(strs[i],1);
}else{
map.put(strs[i],map.get(strs[i])+1);
}
}
HashMap<String,Integer> count;//暂时统计出现次数
int inlen=strs[0].length();
int dstlen=inlen*strs.length;
for(int i=0;i <= s.length()-dstlen;i++){
int j=i;
count=new HashMap();
int cur=0;
for(;cur<strs.length;cur++){
String curstr=s.substring(j,j+inlen);
if(!map.containsKey(curstr)){
break;
}
if(!count.containsKey(curstr)){
count.put(curstr,1);
}else if(count.get(curstr) < map.get(curstr)){
count.put(curstr,count.get(curstr)+1);
}else{
break;
}
j=j+inlen;
}
if(cur == strs.length){
array.add(i);
}
}
return array;
}
}