golang力扣leetcode 132.分割回文串II

简介: golang力扣leetcode 132.分割回文串II

132.分割回文串II

132.分割回文串II

题解

//state: dp[i]表示string[0,i)最少分割次数

//function: dp[i] = min(dp[i],dp[j]+1) -->j<i && [j+1,i)是回文串

//intialize:dp[i] = i-1

//answer: dp[len(s)]

代码

package main
func minCut(s string) int {
  dp := make([]int, len(s)+1)
  for i := 0; i <= len(s); i++ {
    dp[i] = i - 1
    for j := 0; j < i; j++ {
      if isPalindrome(s, j, i-1) {
        dp[i] = min(dp[i], dp[j]+1)
      }
    }
  }
  return dp[len(s)]
}
func isPalindrome(s string, i, j int) bool {
  for i < j {
    if s[i] == s[j] {
      i++
      j--
    } else {
      return false
    }
  }
  return true
}
func min(a, b int) int {
  if a > b {
    return b
  }
  return a
}
目录
相关文章
|
2月前
|
存储 canal 算法
[Java·算法·简单] LeetCode 125. 验证回文串 详细解读
[Java·算法·简单] LeetCode 125. 验证回文串 详细解读
23 0
|
4月前
|
Go 容器 SQL
【Golang Leetcode】总目录(Day1~100)
【Golang Leetcode】总目录(Day1~100)
475 1
【Golang Leetcode】总目录(Day1~100)
|
4月前
|
Python Go Java
Golang每日一练(leetDay0044) 被围绕的区域、分割回文串I\II
Golang每日一练(leetDay0044) 被围绕的区域、分割回文串I\II
27 0
Golang每日一练(leetDay0044) 被围绕的区域、分割回文串I\II
|
4月前
|
Python Go Java
Golang每日一练(leetDay0042) 二叉树最大路径和、回文串、单词接龙II
Golang每日一练(leetDay0042) 二叉树最大路径和、回文串、单词接龙II
31 0
Golang每日一练(leetDay0042) 二叉树最大路径和、回文串、单词接龙II
|
4月前
leetcode-1221:分割平衡字符串
leetcode-1221:分割平衡字符串
18 0
|
4月前
|
Go
golang力扣leetcode 494.目标和
golang力扣leetcode 494.目标和
29 0
|
4月前
|
Go
golang力扣leetcode 剑指Offer II 114. 外星文字典
golang力扣leetcode 剑指Offer II 114. 外星文字典
19 0
|
4月前
|
Go
golang力扣leetcode 第 295 场周赛
golang力扣leetcode 第 295 场周赛
37 0
|
2月前
|
SQL 前端开发 Go
编程笔记 GOLANG基础 001 为什么要学习Go语言
编程笔记 GOLANG基础 001 为什么要学习Go语言
|
4月前
|
物联网 Go 网络性能优化
使用Go语言(Golang)可以实现MQTT协议的点对点(P2P)消息发送。MQTT协议本身支持多种消息收发模式
使用Go语言(Golang)可以实现MQTT协议的点对点(P2P)消息发送。MQTT协议本身支持多种消息收发模式【1月更文挑战第21天】【1月更文挑战第104篇】
109 1