Given two arrays of strings a1 and a2 return a sorted array r in lexicographical order of the strings of a1 which are substrings of strings of a2.
Example 1:
a1 = ["arp", "live", "strong"]
a2 = ["lively", "alive", "harp", "sharp", "armstrong"]
returns ["arp", "live", "strong"]
Example 2:
a1 = ["tarp", "mice", "bull"]
a2 = ["lively", "alive", "harp", "sharp", "armstrong"]
Example 1:
a1 = ["arp", "live", "strong"]
a2 = ["lively", "alive", "harp", "sharp", "armstrong"]
returns ["arp", "live", "strong"]
Example 2:
a1 = ["tarp", "mice", "bull"]
a2 = ["lively", "alive", "harp", "sharp", "armstrong"]
returns []
import java.util.*;
public class WhichAreIn {
public static String[] inArray(String[] array1, String[] array2) {
//set集合,用于放置比较后的子字符串,避免重复元素
Set<String> strs = new HashSet<String>();
//第一个数组里的字符串
for(int i = 0; i < array1.length; i++){
for(int j = 0; j < array2.length; j ++){
int index = array2[j].indexOf(array1[i]);
//返回值不等于-1,则说明是它的一个字符串,则将其放入strs
if(index != -1 ){
strs.add(array1[i]);
//加入set集合后break,可节约时间
break;
}
}
}
//List等转string[]的方法
String[] resultArray = strs.toArray(new String[strs.size()]);
//将得到的数组,排序。
Arrays.sort(resultArray);
return resultArray ;
}
}