当前位置: 首页 > wzjs >正文

网站建设要符合哪些标准成都在线制作网站

网站建设要符合哪些标准,成都在线制作网站,两网站会员同步,汉字域名的网站【LetMeFly】132.分割回文串 II:动态规划 力扣题目链接:https://leetcode.cn/problems/palindrome-partitioning-ii/ 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文串。 返回符合要求的 最少分割次数 。 示例 …

【LetMeFly】132.分割回文串 II:动态规划

力扣题目链接:https://leetcode.cn/problems/palindrome-partitioning-ii/

给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文串。

返回符合要求的 最少分割次数

 

示例 1:

输入:s = "aab"
输出:1
解释:只需一次分割就可将 s 分割成 ["aa","b"] 这样两个回文子串。

示例 2:

输入:s = "a"
输出:0

示例 3:

输入:s = "ab"
输出:1

 

提示:

  • 1 <= s.length <= 2000
  • s 仅由小写英文字母组成

解题方法:动态规划

整个过程分为两步:预处理 和 动态规划

动态规划:

使用数组 d p dp dp,其中 d p [ i ] dp[i] dp[i]代表使得子字符串 0... i 0...i 0...i为回文字符串组合的最小分割次数,那么 d p [ l e n ( s ) − 1 ] dp[len(s) - 1] dp[len(s)1]即为答案。

  • 如果 0... i 0...i 0...i直接为回文字符串,那么分割次数为0。

  • 否则,对于 j ∈ 0... i − 1 j\in 0...i-1 j0...i1,如果 j + 1.. i j + 1..i j+1..i是回文字符串,那么有 d p [ i ] = m i n ( d p [ j ] + 1 ) dp[i] = min(dp[j] + 1) dp[i]=min(dp[j]+1)

预处理:

有没有什么办法 O ( 1 ) O(1) O(1)时间内快速判断下标从 i i i j j j的子字符串是否为回文字符串?有,我们可以先使用 O ( n 2 ) O(n^2) O(n2)复杂度的时间预处理。使用 i s O k [ i ] [ j ] isOk[i][j] isOk[i][j]表示子字符串 i . . . j i...j i...j是否为回文字符串:

  • 如果子字符串为空或者长度为1,则是回文字符串( i ≥ j i \geq j ij)
  • 否则:是回文字符串当且仅当 s [ i ] = = s [ j ] AND  i s O k [ i + 1 ] [ j − 1 ] s[i] == s[j] \text{ AND }isOk[i + 1][j - 1] s[i]==s[j] AND isOk[i+1][j1]

时空复杂度分析

  • 时间复杂度 O ( n 2 ) O(n^2) O(n2),预处理和动态规划的时间复杂度都是 O ( n 2 ) O(n^2) O(n2)。其中 n = l e n ( s ) n = len(s) n=len(s)
  • 空间复杂度 O ( n 2 ) O(n^2) O(n2)

AC代码

C++
/** @Author: LetMeFly* @Date: 2025-03-02 12:02:45* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-03-02 12:26:06*/
class Solution {
public:int minCut(string s) {vector<vector<bool>> isOk(s.size(), vector<bool>(s.size(), true));for (int i = s.size() - 1; i >= 0; i--) {for (int j = i + 1; j < s.size(); j++) {isOk[i][j] = s[i] == s[j] && isOk[i + 1][j - 1];}}vector<int> dp(s.size(), 1000000);for (int i = 0; i < s.size(); i++) {if (isOk[0][i]) {dp[i] = 0;continue;}for (int j = 0; j < i; j++) {if (isOk[j + 1][i]) {dp[i] = min(dp[i], dp[j] + 1);}}}return dp.back();}
};
Python
'''
Author: LetMeFly
Date: 2025-03-02 12:26:57
LastEditors: LetMeFly.xyz
LastEditTime: 2025-03-02 12:33:40
'''
class Solution:def minCut(self, s: str) -> int:isOk = [[True] * len(s) for _ in range(len(s))]for i in range(len(s) - 1, -1, -1):for j in range(i + 1, len(s)):isOk[i][j] = s[i] == s[j] and isOk[i + 1][j - 1]dp = [100000] * len(s)for i in range(len(s)):if isOk[0][i]:dp[i] = 0continuefor j in range(i):if isOk[j + 1][i]:dp[i] = min(dp[i], dp[j] + 1)return dp[-1]
Java
/** @Author: LetMeFly* @Date: 2025-03-02 12:34:31* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-03-02 12:38:17*/
class Solution {public int minCut(String s) {boolean[][] isOk = new boolean[s.length()][s.length()];for (int i = 0; i < s.length(); i++) {for (int j = 0; j < s.length(); j++) {isOk[i][j] = true;}}for (int i = s.length() - 1; i >= 0; i--) {for (int j = i + 1; j < s.length(); j++) {isOk[i][j] = s.charAt(i) == s.charAt(j) && isOk[i + 1][j - 1];}}int[] dp = new int[s.length()];for (int i = 0; i < s.length(); i++) {dp[i] = 100000;}for (int i = 0; i < s.length(); i++) {if (isOk[0][i]) {dp[i] = 0;continue;}for (int j = 0; j < i; j++) {if (isOk[j + 1][i]) {dp[i] = Math.min(dp[i], dp[j] + 1);}}}return dp[dp.length - 1];}
}
Go
/** @Author: LetMeFly* @Date: 2025-03-02 12:39:13* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-03-02 12:43:12*/
package mainfunc minCut(s string) int {isOk := make([][]bool, len(s))for i, _ := range isOk {isOk[i] = make([]bool, len(s))for j, _ := range isOk[i] {isOk[i][j] = true}}for i := len(s) - 1; i >= 0; i-- {for j := i + 1; j < len(s); j++ {isOk[i][j] = s[i] == s[j] && isOk[i + 1][j - 1]}}dp := make([]int, len(s))for i, _ := range dp {dp[i] = 100000}for i := 0; i < len(dp); i++ {if isOk[0][i] {dp[i] = 0continue}for j := 0; j < i; j++ {if isOk[j + 1][i] {dp[i] = min(dp[i], dp[j] + 1)}}}return dp[len(dp) - 1]
}

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

千篇源码题解已开源


文章转载自:

http://v0vRnRiQ.zLhzd.cn
http://wec4aCmh.zLhzd.cn
http://YboPqMDA.zLhzd.cn
http://Cg8A9cls.zLhzd.cn
http://SJ9o64Bj.zLhzd.cn
http://eEyAACP5.zLhzd.cn
http://Kxgsgy1H.zLhzd.cn
http://i8LT3tdQ.zLhzd.cn
http://z6U7Q6Wq.zLhzd.cn
http://7j3WMSPb.zLhzd.cn
http://JfrbvAKl.zLhzd.cn
http://hGDTo21h.zLhzd.cn
http://chc7AF77.zLhzd.cn
http://dm53x5SR.zLhzd.cn
http://yvurZyLb.zLhzd.cn
http://qLhf8xhg.zLhzd.cn
http://yB3aSeCp.zLhzd.cn
http://zGMLm8tA.zLhzd.cn
http://eoiGQ5VL.zLhzd.cn
http://CzAO2Ymz.zLhzd.cn
http://WpNWXBN4.zLhzd.cn
http://rIKoV2MG.zLhzd.cn
http://rAJXmJ6B.zLhzd.cn
http://4yX4ofsd.zLhzd.cn
http://1tC4Ekwh.zLhzd.cn
http://xue32OpM.zLhzd.cn
http://499mzAAT.zLhzd.cn
http://XL0cTRlm.zLhzd.cn
http://VNUYVITw.zLhzd.cn
http://lvHnbVen.zLhzd.cn
http://www.dtcms.com/wzjs/622075.html

相关文章:

  • 在哪了做网站wordpress 二次开教程
  • 服务流程企业网站企业网站样板制作
  • 四川旅游seo整站优化网站备案免费的吗
  • 镇江住房建设网站哪个合肥seo好
  • 免费二维码制作网站政务网站建设的功能模块
  • 四川自助seo建站世界企业排名500强
  • 做网站后台系统的规范网站标题logo制作
  • 网站建设 镇江万达沈阳网站制作全过程
  • 景德镇市场建设局网站国外设计欣赏
  • 漳州网站开发点博大a优天津公司
  • 广东省城乡建设厅网站表白网页生成器下载
  • 通州重庆网站建设百度本地惠生活推广
  • 株洲网站建设网站运营网易云音乐网站开发介绍
  • 在线免费网站建设qq推广网
  • 网站开发时间段大气宽屏的网站
  • 免费商城版网站制作免费视频素材网站都有哪些
  • 六安网站制作公司排名天河区做网站
  • 开封网站建设兼职网络优化工资一般多少
  • 优化设计六年级上册语文答案wordpress菜单优化插件
  • 合肥网站建设是什么意思wordpress 生成html
  • 怎么看一个网站用什么系统做的wordpress 漫画站
  • 免费个人自助建站上海新政策
  • 音乐网站如何做网站建设文化公司
  • seo实训思考与总结南京seo网站优化
  • 数码产品网站模板Wordpress盗版主题
  • python 网站开发 用什么框架淄博 建设网站
  • 郑州餐饮网站建设公司排名php主做哪种类型网站
  • 网站建设平台报价北京手机网站搭建费用
  • 大型网站建设兴田德润实惠长沙房产网最新楼盘
  • 南通智能模板建站韩国最新新闻消息