• 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.

    Analysis:

    DP

    Solution:

     1 public class Solution {
     2     public int minCut(String s) {
     3         if (s.length()==0) return 0;
     4 
     5         int[] minCut = new int[s.length()+1];
     6         minCut[0] = -1;
     7         boolean[][] valid = new boolean[s.length()][s.length()];        
     8         for (int i=0;i<s.length();i++){
     9             valid[i][i]=true;
    10         }        
    11 
    12         for (int i=1;i<=s.length();i++){
    13             minCut[i] = minCut[i-1]+1;
    14             for (int j=i-2;j>=0;j--)
    15                 if (s.charAt(j)==s.charAt(i-1) && (j==i-2 || valid[j+1][i-2])){
    16                     valid[j][i-1]=true;
    17                     minCut[i] = Math.min(minCut[i],minCut[j]+1);
    18                 }
    19                 
    20         }
    21 
    22         return minCut[s.length()];
    23     }
    24 
    25 }
  • 相关阅读:
    servlet
    过滤器
    拦截器
    logback
    hibernate(1)
    函数的关键字参数
    函数的不定长参数
    打印星形三角
    九九乘法表
    udp客户端收发数据流程
  • 原文地址:https://www.cnblogs.com/lishiblog/p/4158926.html
Copyright © 2020-2023  润新知