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.

    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 }
  • 相关阅读:
    Vue之仿百度搜索框
    Vue之交互
    Vue之键盘事件
    Vue之事件冒泡
    Vue之阻止默认行为
    sql注入常用注释符总结
    什么是Git
    Github部署博客
    php笔记
    JavaScript(更新中)
  • 原文地址:https://www.cnblogs.com/lishiblog/p/4158926.html
Copyright © 2011-2022 走看看