mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 07:35:35 +08:00
@ -289,7 +289,45 @@ class Solution:
|
|||||||
## Go
|
## Go
|
||||||
|
|
||||||
```go
|
```go
|
||||||
|
func minCut(s string) int {
|
||||||
|
isValid := make([][]bool, len(s))
|
||||||
|
for i := 0; i < len(isValid); i++ {
|
||||||
|
isValid[i] = make([]bool, len(s))
|
||||||
|
isValid[i][i] = true
|
||||||
|
}
|
||||||
|
for i := len(s) - 1; i >= 0; i-- {
|
||||||
|
for j := i + 1; j < len(s); j++ {
|
||||||
|
if s[i] == s[j] && (isValid[i + 1][j - 1] || j - i == 1) {
|
||||||
|
isValid[i][j] = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dp := make([]int, len(s))
|
||||||
|
for i := 0; i < len(s); i++ {
|
||||||
|
dp[i] = math.MaxInt
|
||||||
|
}
|
||||||
|
for i := 0; i < len(s); i++ {
|
||||||
|
if isValid[0][i] {
|
||||||
|
dp[i] = 0
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
for j := 0; j < i; j++ {
|
||||||
|
if isValid[j + 1][i] {
|
||||||
|
dp[i] = min(dp[i], dp[j] + 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dp[len(s) - 1]
|
||||||
|
}
|
||||||
|
|
||||||
|
func min(i, j int) int {
|
||||||
|
if i < j {
|
||||||
|
return i
|
||||||
|
} else {
|
||||||
|
return j
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## JavaScript
|
## JavaScript
|
||||||
|
Reference in New Issue
Block a user