Skip to content

Commit 9f3a6af

Browse files
authored
Create 0131-palindrome-partitioning.kt
1 parent 20a62bf commit 9f3a6af

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
class Solution {
2+
fun partition(s: String): List<List<String>> {
3+
val res = mutableListOf<MutableList<String>>()
4+
val part = mutableListOf<String>()
5+
6+
fun isPalindrome(_l: Int, _r: Int): Boolean {
7+
var l = _l
8+
var r = _r
9+
while (l < r) {
10+
if (s[l] != s[r])
11+
return false
12+
l++
13+
r--
14+
}
15+
return true
16+
}
17+
18+
fun dfs(i: Int) {
19+
if (i >= s.length) {
20+
res.add(part.toMutableList())
21+
return
22+
}
23+
24+
for (j in i until s.length) {
25+
if (isPalindrome(i, j)) {
26+
part.add(s.substring(i, j + 1))
27+
dfs(j + 1)
28+
part.removeAt(part.lastIndex)
29+
}
30+
}
31+
}
32+
33+
dfs(0)
34+
return res
35+
}
36+
}

0 commit comments

Comments
 (0)