Palindrome Partitioning II

来源:互联网 发布:两组数据差值的标准差 编辑:程序博客网 时间:2024/06/08 12:24
class Solution {public:bool** isPal;bool isPalindrome(int start,int end,const string& s){int len=(end-start)/2;for(int i=0;i<len;++i){if(s[start+i]!=s[end-1-i]){return false;}}return true;}    int minCut(string s) {        int len=s.size();//cout<<"start to fill matrix"<<endl;isPal=new bool*[len+1];for(int i=0;i<=len;++i){isPal[i]=new bool[len+1]();}for(int i=0;i<len;++i){isPal[i][i]=true;}for(int k=1;k<=len;++k){for(int i=0;i+k<len;++i){int j=i+k;if(s[i]==s[j]){if(i+1>=j-1){isPal[i][j]=true;}else if(isPal[i+1][j-1]){isPal[i][j]=true;}else{//remain false}}}}cout<<"end to fill matrix"<<endl;//int *dp2=new int[len+1]();dp2[0]=1;for(int i=1;i<len;++i){int min=dp2[i-1]+1;for(int j=i-1;j>=0;--j){if(isPal[j][i]){if(j==0){min=1;}else if(dp2[j-1]+1<min){min=dp2[j-1]+1; }else{//no else exist}}}dp2[i]=min;/*if(min==len+1){dp2[i]=dp2[i-1]+1;}else{dp2[i]=min+1;}*/}return dp2[len-1]-1;    }};

0 0
原创粉丝点击