题目
给定一个较长字符串big和一个包含较短字符串的数组smalls,设计一个方法,根据smalls中的每一个较短字符串,对big进行搜索。输出smalls中的字符串在big里出现的所有位置positions,其中positions[i]为smalls[i]出现的所有位置。
lc17.17字符串多次搜索
AC代码
class Solution {
public int[][] multiSearch(String big, String[] smalls) {
int[][] result = new int[smalls.length][0];
if(smalls.length == 0 ||big.length() == 0 ){
return result;
}
for (int i = 0; i < smalls.length; i++) {
if(smalls[i].length()==0){
break;
}
ArrayList<Integer> arrayList = new ArrayList<Integer>();
int temp = big.indexOf(smalls[i]);
while(temp != -1){
arrayList.add(temp);
temp = big.indexOf(smalls[i],temp+1);
}
Integer [] temp_Iarr = new Integer[arrayList.size()];
arrayList.toArray(temp_Iarr);
int [] temp_arr = new int[arrayList.size()];
for (int j = 0; j < temp_Iarr.length; j++) {
temp_arr[j] = temp_Iarr[j];
}
result[i] = temp_arr;
}
return result;
}
}
AC截图(内存占用还好 emmmm)