Palindrome Partitioning II 最少的回文数切割

来源:互联网 发布:购买的淘宝音乐怎么用 编辑:程序博客网 时间:2024/06/05 23:47
class Solution {
public:
    int minCut(string s) {
        int n=s.size();
        vector<int> dp(n+1);
        vector<vector<bool>> f(n,vector<bool>(n,false));
        for(int i=0;i<=n;i++)
        {
            dp[i]=n-1-i;
        }
        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]=true;
                   dp[i]=min(dp[i],1+dp[j+1]);
               }
            }
        }
        return dp[0];
    }
};
0 0
原创粉丝点击