博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 132. 分割回文串 II(Palindrome Partitioning II)
阅读量:5063 次
发布时间:2019-06-12

本文共 878 字,大约阅读时间需要 2 分钟。

题目描述

 

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

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

示例:

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

 

解题思路

 

动态规划思想。从最后一个字符开始向前遍历,每次判断以当前字符为首字母依次到最后字符的子字符串是否为回文串,若是则更新包含当前回文串的最小回文串数。具体想法可参考

 

代码

 

1 class Solution { 2 public: 3     int minCut(string s) { 4         vector
> dp(s.length(), vector
(s.length(), 0)); 5 vector
cnt(s.length() + 1, 0); 6 for(int i = s.length() - 1; i >= 0; i--){ 7 cnt[i] = INT_MAX; 8 for(int j = i; j < s.length(); j++){ 9 if(s[i] == s[j] && (j - i <= 2 || dp[i + 1][j - 1])){10 dp[i][j] = 1;11 cnt[i] = min(cnt[i], cnt[j + 1] + 1);12 }13 }14 }15 return cnt[0] - 1;16 }17 };

 

转载于:https://www.cnblogs.com/wmx24/p/9885385.html

你可能感兴趣的文章
c# 获取 bios 序列号
查看>>
[转] Chrome 控制台不完全指南
查看>>
给现下流行的打车软件的一点小建议
查看>>
Git 文件比较
查看>>
leetcode 102. Binary Tree Level Order Traversal
查看>>
def权限,频率,分页
查看>>
Javascript switch语句
查看>>
替换localhost:8080(假域名,本地使用)
查看>>
jQuery学习笔记
查看>>
PHP设计模式:结构型之门面(facade)
查看>>
ios中UITableViewCell选中后的颜色设置
查看>>
[搜片神器]迅雷云播视频地址获取代码分享[自己动手丰衣足食]
查看>>
两种不同的多路选择器?
查看>>
关于是用dotnet获取本机IP地址+计算机名的方法
查看>>
ajax请求步骤
查看>>
数据存储网址
查看>>
阅读程序并回答问题
查看>>
flash_header.S ( freescale imx6 board)
查看>>
C# 操作Excel文件的方法
查看>>
Converter -> public static int ToInt32(double value) 你用对了么?
查看>>