国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

LeetCode-5 Longest Palindromic Substring

psychola / 3114人閱讀

摘要:題目解析題目是要找出最長的回文字符串,拿到題目的第一反應是遍歷子串,然后一直替換最長的子字符串即可了。但是這種解法遇到極端輸入狀況就會超時,指定的最長長度為,遍歷子串需要兩次循環,判斷回文需要一次循環,所以總的效率為,那么極端狀況會超時。

題目

Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.

Example 1:

Input: "babad"
Output: "bab"
Note: "aba" is also a valid answer.
Example 2:

Input: "cbbd"
Output: "bb"

解析

題目是要找出最長的回文字符串,拿到題目的第一反應是遍歷子串,然后一直替換最長的子字符串即可了。
但是這種解法遇到極端輸入狀況就會超時,指定的最長長度為1000,遍歷子串需要兩次循環,判斷回文需要一次循環,所以總的效率為O(n^3),那么極端狀況會超時。

超時解法
    public String longestPalindrome(String s) {
        String longestStr = "";
        for(int start = 0 ; start= temp.length()){
                    continue;
                }
                if(checkStrValid(temp) && temp.length()>longestStr.length()){
                    longestStr = temp;
                }
            }
        }
        return longestStr;
    }
    private boolean checkStrValid(String s){
        if(s==null || s.length()==0){
            return false;
        }
        int start = 0 ,end = s.length()-1;
        while(start < end){
            if(s.charAt(start++)!=s.charAt(end--)){
                return false;
            }
        }
        return true;
    }
正確解法
     public String longestPalindrome2(String s) {
        // parameter[0]保存start的值,parameter[1]保存maxLen的值
        // 這樣定義變量是為了實現java引用傳遞
        int[] parameter = new int[2];
        for(int i = 0 ; i < s.length() ; ++i){
            // 如果是奇數回文字符串,例如aba,bab,bbabb等
            searchPalindrome(s , i , i ,parameter);
            // 如果是偶數回文字符串,例如bbbb,baab,ceddec等
            searchPalindrome(s , i , i+1 , parameter);
        }
        // 等價于s.subString(start , start + maxLen)
        return s.substring(parameter[0],parameter[0] + parameter[1]);
    }

    private void searchPalindrome(String s , int left , int right , int[] parameter){
        // 尋找回文字符串
        while(left>=0 && right < s.length() && s.charAt(left) == s.charAt(right)){
            --left;
            ++right;
        }
        // 如果maxLen < 構造的回文子字符串長度
        if(parameter[1] < right - left - 1){
            // start = left + 1
            parameter[0] = left + 1;
            // maxLen = right - left - 1
            parameter[1] = right - left - 1 ;
        }
    }

定義int[] parameter的原因是為了支持函數引用傳遞,以免在searchPalindrome改變int參數值回到longestPalindrome2方法中值又回到原來的值,這是java方法參數值傳遞特性導致的。該方法效率為O(n^2)。

其他解法

還有一些比較巧妙的解法例如動態規劃,馬拉車算法等,目前還不能理解其中的精髓,等到我學會本質之后再補充,先貼個大神的博客放著。
https://www.cnblogs.com/grand...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72505.html

相關文章

  • Leetcode 5 Longest Palindromic Substring 最長回文子串

    摘要:難度題目是說給出一個字符串求出這個字符串的最長回文的子串回文是指前后完全對稱的字符串像是之類的都算是回文奇數字母的回文和偶數字母的回文中心是不一樣的奇數字母比如的中心在中間字母上偶數字母比如的回文在中間兩字母的中心上由此可見回文中心點實際上 Given a string s, find the longest palindromic substring in s. You may as...

    NotFound 評論0 收藏0
  • leetcode 5 Longest Palindromic Substring Java &

    摘要:回文的意思就是反轉字符串后和原字符串相等。因為這種想法沒次都是兩邊同時擴展。所以要分目標字符串長度為奇數目標字符串為偶數兩種情況。 題目詳情 Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.題目的意思是輸入...

    JessYanCoding 評論0 收藏0
  • LeetCode.5 最長回文子串(longest-palindromic-substring)(J

    摘要:一題目最長回文子串給定一個字符串,找到中最長的回文子串。你可以假設的最大長度為。示例輸入輸出注意也是一個有效答案。 一、題目 最長回文子串: 給定一個字符串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。 示例 1: 輸入: babad輸出: bab注意: aba 也是一個有效答案。 示例 2: 輸入: cbbd輸出: bb 二、我的答案 思路 1.排...

    Steven 評論0 收藏0
  • [Leetcode] Longest Palindromic Substring 最長回文子字符串

    摘要:這種解法中,外層循環遍歷的是子字符串的中心點,內層循環則是從中心擴散,一旦不是回文就不再計算其他以此為中心的較大的字符串。 Longest Palindromic Substring Given a string S, find the longest palindromic substring in S. You may assume that the maximum length ...

    KnewOne 評論0 收藏0
  • 5. Longest Palindromic Substring

    摘要:暴力算法就是找到所有每個都進行的檢查。時間復雜度是個調用平均時長為這里唯一確定用的是頭尾表示。因為的對稱性,我們可以從中間出發向兩邊延展,找到最長的分為兩種基本情況。奇數長度出發點一致,都為偶數長度出發點為相鄰的點,和結束是 Given a string s, find the longest palindromic substring in s. You may assume tha...

    APICloud 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<