LeetCode刷题记83
30. 串联所有单词的子串
class Solution {
public List<Integer> findSubstring(String s, String[] words) {
List<Integer> ans = new ArrayList<Integer>();
if (words.length == 0) return ans;
Arrays.sort(words);
int wl = words[0].length();
int sl = s.length();
int start = 0;
while (s.length() >= words.length * wl) {
// System.out.println(s);
String[] tmp = new String[words.length];
for (int i = 0; i < words.length; i ++) {
tmp[i] = s.substring(i * wl, i * wl + wl);
}
Arrays.sort(tmp);
int i = 0;
for (; i < words.length; i ++) {
if (tmp[i].compareTo(words[i]) != 0) {
break;
}
}
if (i == words.length) ans.add(start);
s = s.substring(1);
start ++;
}
return ans;
}
}
题目是困难,但是简单方法也能过。
5/5
83/150