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;
        }
    };
    

      

  • 相关阅读:
    poj3468(A Simple Problem with Integers)线段树+树状数组
    关于JVM——JVM内存模型
    关于JVM——类加载机制
    关于JVM(二)
    关于JVM(一)
    关于LongAdder
    关于Future
    关于Fork/Join
    关于Atomic
    关于LockSupport
  • 原文地址:https://www.cnblogs.com/Rosanna/p/3597439.html
Copyright © 2011-2022 走看看