1. 程式人生 > >LeetCode一道題:迴文數劃分的最小次數

LeetCode一道題:迴文數劃分的最小次數

public class Sholution {
    
	private boolean isPalindrome(char[] ch, int i,int j){
        while(i<j){
            if(ch[i]!=ch[j]){
                return false;
            }
            ++i;
            --j;
        }
        return true;
    }
	public int minCut(String s){
        int totalLength = s.length();
        int[] M = new int[totalLength];
        char[] ch = s.toCharArray();
        M[0]=0;
        for(int i=1;i<totalLength;++i){
            int min = 99999;
            for(int j=0;j<=i;++j){
                int cut = 99999;
                if(isPalindrome(ch,j,i)){
                    if(j>0){
                        cut = M[j-1]+1;
                    }
                    else{
                        cut = 0;
                    }
                    if(min>cut){
                        min = cut;
                    }
                }
            }
            
            M[i]=min;
        }
        return M[totalLength-1];
    }
	
}

相關推薦

LeetCode一道劃分次數

public class Sholution { private boolean isPalindrome(char[] ch, int i,int j){ while(i<j){ if(ch[i]!=ch[j]){

Vijos 1304

描述 若一個數(首位不為零)從左向右讀與從右向左讀都一樣,我們就將其稱之為迴文數。 例如:給定一個10進位制數56,將56加65(即把56從右向左讀),得到121是一個迴文數。 又如:對於10進位

字串分割成為串的次數

  class Solution { public: vector<vector<string>> partition(string s) { vector<string> svec; vector<ve

leetcode的python實現 刷筆記9 暴力解法和進階演算法

判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個迴

leetcode的python實現 刷筆記9 暴力解法和進階演算法

判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是

LeetCode庫9——JavaScript解答

題目描述: 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解

演算法4(python3實現)

判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個迴

leetcode庫——

題目描述: 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: fa

LeetCode——第九

9.迴文數 題目描述 思路 程式碼示例 題目描述 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2:

leetcode 9

bool isPalindrome(int x) { vector<int> a; if(x<0) return false; if(x==0) return

LeetCode-009回

etc spa isp 一個 else false 指正 示例 ret 判斷一個整數是否是回文數。回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數 示例 1:輸入: 121輸出: true 示例 2:輸入: -121輸出: false解釋: 從左向右讀, 為 -

LeetCode題解】9_(Palindrome-Number)

9_迴文數(Palindrome-Number) 文章目錄 9_迴文數(Palindrome-Number) 描述 解法一:轉化為字串的比較 思路 Java 實現 Python 實現 複雜

藍橋杯練習題

package lanqiaobei; import java.util.Scanner; /* 練習題:迴文數 一個正整數,如果交換高低位以後和原數相等,那麼稱這個數為迴文數。比如 121,2332 都是迴文數,13,456713,4567 不是迴文數。 任意一個正整數,如果其不是迴文數,將該

LeetCode :C語言 9.

迴文數簡而言之就是對稱的數(負數按題目要求不是),因為上一個題目是反轉整數很自然的就想到了直接反轉之後判斷。 bool isPalindrome(int x) { int out = 0,in = x; int temp; if(x<0)

LeetCode(9)——

描述 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例1: 輸入: 121 輸出: true 示例2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。 因此它不

【Coding Girl】LeetCode 2.兩相加 Add Two Numbers

描述: 給定兩個非空連結串列來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回一個新的連結串列。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。 示例: 輸入:(2 -> 4 -> 3) + (5 -> 6

思考一道非相鄰大和

 給定一個整數的陣列,相鄰的數不能同時選,求從該陣列選取若干整數,使得他們的和最大,要求只能使用o(1)的空間複雜度。 (抽時間再看看 )  // 非相鄰數最大和.cpp : 定義控制檯應用程式的入口點。 // #include "stdafx.h" #include

演算法練習三

題目: 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此

面試題

一次面試時要求在紙上寫出迴文數的程式碼 /**  * 判斷一個整數是否是迴文數,是返回1,否則返回0  */      public static int isHuiwen(int num){    &nb

LeetCode-7-Palindrome Number()

英文題目:Determine whether an integer is a palindrome. Do this without extra space.Some hints:Could negative integers be palindromes? (ie, -1)