132. Palindrome Partitioning II

class Solution {
    public int minCut(String s) {
        int[] dp=new int[s.length()+1];
        for(int i=0;i<=s.length();i++)
            dp[i]=i-1;
        for(int i=1;i<s.length();i++)
        {
            for(int len=0;i-len>=0&&i+len<s.length()&&s.charAt(i-len)==s.charAt(i+len);len++)
                dp[i+1+len]=Math.min(dp[i+1+len],dp[i-len]+1);
            for(int len=0;i-1-len>=0&&i+len<s.length()&&s.charAt(i-1-len)==s.charAt(i+len);len++)
                dp[i+1+len]=Math.min(dp[i+1+len],dp[i-1-len]+1);
            
        }
        return dp[s.length()];
    }
}

  

posted @ 2017-10-05 04:23  Weiyu Wang  阅读(133)  评论(0编辑  收藏  举报