30. Substring with Concatenation of All Words
Problem
Analysis
Code
class Solution {
fun findSubstring(s: String, words: Array<String>): List<Int> {
val result = arrayListOf<Int>()
val total = java.util.LinkedList<String>()
val len = words[0].length
var word: String
var temp: Boolean
for (i in 0..s.length - len) {
if (i + len * words.size > s.length) break
total += words
for (j in 0 until words.size) {
word = s.substring(i + len * j, i + len * (j + 1))
temp = words.indices
.firstOrNull { word == words[it] }
?.let { true }
?: false
if (temp) total.remove(word) else break
}
if (total.isEmpty()) result.add(i) else total.clear()
}
return result
}
}Last updated