Skip to content

Commit 79a20bb

Browse files
committedFeb 6, 2025·
[week9](gmlwls96) Minimum Window Substring
1 parent d9f0c2c commit 79a20bb

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
 

‎minimum-window-substring/gmlwls96.kt

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
class Solution {
2+
fun minWindow(s: String, t: String): String {
3+
if (s.length < t.length) {
4+
return ""
5+
}
6+
val containIndexList = mutableListOf<Int>()
7+
for (i in s.indices) {
8+
if (t.contains(s[i])) {
9+
containIndexList.add(i)
10+
}
11+
}
12+
var answer = ""
13+
val regex =
14+
t.toCharArray().joinToString(separator = "", prefix = "^", postfix = ".+$") { """(?=.*${it})""" }.toRegex()
15+
for (i in 0..containIndexList.size - t.length) {
16+
val startIndex = containIndexList[i]
17+
for (l in t.length..containIndexList.size - i) {
18+
val endIndex = containIndexList[(i + l) - 1] + 1
19+
val subStr = s.substring(startIndex, endIndex)
20+
if (regex.containsMatchIn(subStr)) {
21+
if (answer.isEmpty()) {
22+
answer = subStr
23+
} else if (subStr.length < answer.length) {
24+
answer = subStr
25+
}
26+
break
27+
}
28+
}
29+
}
30+
return answer
31+
}
32+
}

0 commit comments

Comments
 (0)
Please sign in to comment.