Leetcode -- Palindrome Partitioning II
2015-10-28 21:48
459 查看
Given a string s, partition s such that every substring of the partition is a palindrome.
Return the minimum cuts needed for a palindrome partitioning of s.
For example, given s =
Return
be produced using 1 cut.
Return the minimum cuts needed for a palindrome partitioning of s.
For example, given s =
"aab",
Return
1since the palindrome partitioning
["aa","b"]could
be produced using 1 cut.
class Solution { public: int minCut(string s) { int n=s.size(); vector<vector<bool>> f(n,vector<bool>(n,0)); for(int i=n-1;i>=0;--i) for(int j=i;j<n;++j) if(s[i]==s[j]&&(j-i<2||f[i+1][j-1])) f[i][j]=1; vector<int> dp(n,0); for(int i=n-2;i>=0;--i) { if(f[i][n-1]) continue; int val=INT_MAX; for(int j=i+1;j<n;++j) if(f[i][j-1]) val=min(val,dp[j]+1); dp[i]=val; } return dp[0]; } };
相关文章推荐
- CentOS环境下R语言的安装和配置
- Redis之intset数据结构
- 几种常用设计模式
- Cordic 算法的原理介绍
- Sublime Text正确的打开方式
- 贪心、递归、递推以及动态规划算法的分析与对比
- IOS开发笔记21-ARC与分类
- J2EE错误汇整
- Java:编码的详解
- 超几何概率公式与二项概率公式
- Redis之Hash数据结构
- Redis源码之String操作
- 小米开源文件管理器MiCodeFileExplorer-源码研究(6)-媒体文件MediaFile和文件类型MimeUtils
- CentOS 装G++
- js一些常用的效果
- UVA - 11137-Ingenuous Cubrency-DP+数学
- Android RecyclerView之添加Item分割线
- hdu 4635 Strongly connected(强联通)
- 小米开源文件管理器MiCodeFileExplorer-源码研究(6)-媒体文件MediaFile和文件类型MimeUtils
- 小米开源文件管理器MiCodeFileExplorer-源码研究(6)-媒体文件MediaFile和文件类型MimeUtils