【Leetcode】1408. String Matching in an Array
题目地址:https://leetcode.com/problems/string-matching-in-an-array/给定一个长nnn的字符串数组AAA,找到所有是其余某个字符串的子串的那些字符串。返回之。先将字符串按照长度从小到大排序,然后枚举每个字符串是否是比其更长的某个字符串的子串即可。代码如下:import java.util.ArrayList;import java.util.
·
题目地址:
https://leetcode.com/problems/string-matching-in-an-array/
给定一个长 n n n的字符串数组 A A A,找到所有是其余某个字符串的子串的那些字符串。返回之。
先将字符串按照长度从小到大排序,然后枚举每个字符串是否是比其更长的某个字符串的子串即可。代码如下:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Solution {
public List<String> stringMatching(String[] words) {
List<String> res = new ArrayList<>();
Arrays.sort(words, (s1, s2) -> Integer.compare(s1.length(), s2.length()));
for (int i = 0; i < words.length; i++) {
for (int j = i + 1; j < words.length; j++) {
if (words[j].contains(words[i])) {
res.add(words[i]);
break;
}
}
}
return res;
}
}
时间复杂度 O ( n log n + n 2 l ) O(n\log n+n^2l) O(nlogn+n2l), l l l是最长字符串长度,空间 O ( 1 ) O(1) O(1)。
更多推荐
所有评论(0)