Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f9d4c1c

Browse files
committed
update
1 parent f467f1e commit f9d4c1c

File tree

3 files changed

+83
-0
lines changed

3 files changed

+83
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
2+
# 0131.palindrome-partitioning
3+
4+
```text
5+
131. 分割回文串
6+
7+
8+
给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。
9+
10+
回文串 是正着读和反着读都一样的字符串。
11+
12+
13+
14+
示例 1:
15+
16+
输入:s = "aab"
17+
输出:[["a","a","b"],["aa","b"]]
18+
示例 2:
19+
20+
输入:s = "a"
21+
输出:[["a"]]
22+
23+
24+
提示:
25+
26+
1 <= s.length <= 16
27+
s 仅由小写英文字母组成
28+
29+
来源:力扣(LeetCode)
30+
链接:https://leetcode-cn.com/problems/palindrome-partitioning
31+
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
32+
```
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package partitioning
2+
3+
import "fmt"
4+
5+
func Run() {
6+
s := "aab"
7+
p := partition(s)
8+
fmt.Println(p)
9+
}
10+
11+
func partition(s string) [][]string {
12+
n := len(s)
13+
f := make([][]bool, n)
14+
for i := range f {
15+
f[i] = make([]bool, n)
16+
for j := range f[i] {
17+
f[i][j] = true
18+
}
19+
}
20+
for i := n - 1; i >= 0; i-- {
21+
for j := i + 1; j < n; j++ {
22+
f[i][j] = s[i] == s[j] && f[i+1][j-1]
23+
}
24+
}
25+
ans := make([][]string, 0)
26+
splists := make([]string, 0)
27+
dfs := func(int) {}
28+
dfs = func(i int) {
29+
if i == n {
30+
ans = append(ans, append([]string{}, splists...))
31+
return
32+
}
33+
for j := i; j < n; j++ {
34+
if f[i][j] {
35+
splists = append(splists, s[i:j+1])
36+
dfs(j + 1)
37+
splists = splists[:len(splists)-1]
38+
}
39+
}
40+
}
41+
dfs(0)
42+
return ans
43+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
package partitioning
3+
4+
import "testing"
5+
6+
func TestRun(t *testing.T) {
7+
Run()
8+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /