今天,小魏为大家带来新的题
在做这个题的时候我们采用数组遍历的形式,用Java中的contains函数看words【j】当中是否存在words【i】,若存在,则在这个数组中增加这个结果,并且退出,如果没有,则返回这个数组
代码如下
class Solution {
public List<String> stringMatching(String[] words) {
List<String> tmp=new ArrayList<>();//创建数组
int n=words.length;//求数组长度
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(i!=j&&words[j].contains(words[i])){
//子串不等于母串
tmp.add(words[i]);
break;
}
}
}
return tmp;
}
}
这道题我想不通的一点是既然看的是words[j]中是否存在words[i],那么j的范围应该要大于i的范围,所以应该把j放在外层循环啊?(我在解答时将j作为外层循环时就是编译错误的)
哪位大佬可以给我解答一下呢,十分感谢!🙏🙏🙏