今天,小魏为大家带来新的题
在做这个题的时候我们采用数组遍历的形式,用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作为外层循环时就是编译错误的)
哪位大佬可以给我解答一下呢,十分感谢!🙏🙏🙏