zoukankan      html  css  js  c++  java
  • [LeetCode]Palindrome Partitioning II

    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 = "aab",
    Return 1 since the palindrome partitioning ["aa","b"] could be produced using 1 cut.

    class Solution {
    public:
        int minCut(string s) {
            // IMPORTANT: Please reset any member data you declared, as
            // the same Solution instance will be reused for each test case.
            int len = s.size();
    		int* dp = new int[len+1];
    		for(int i=len; i>=0; i--)
    			dp[i] = len-i;
    		bool** matrix = new bool*[len];
    		for(int i=0; i<len; i++)
    		{
    			matrix[i] = new bool[len];
    			memset(matrix[i], false, sizeof(bool)*len);
    		}
    		for(int i=len-1; i>=0; i--)
    			for(int j=i; j<len; j++)
    			{
    				if(s[i] == s[j] && (j-i<2 || matrix[i+1][j-1]))
    				{
    					matrix[i][j] = true;
    					dp[i] = min(dp[i], dp[j+1]+1);
    				}
    			}
    		return dp[0]-1;
        }
    };
    

      

  • 相关阅读:
    do-while语句
    指针操作符
    字符译码
    PHP流程控制分支结构
    PHP数据类型和常量
    PHP中使用的变量
    第一个PHP程序
    HTML的区块属性
    HTML的定位属性
    HTML的盒子模型
  • 原文地址:https://www.cnblogs.com/Rosanna/p/3597439.html
Copyright © 2011-2022 走看看