摘要:回文的意思就是反轉(zhuǎn)字符串后和原字符串相等。因?yàn)檫@種想法沒次都是兩邊同時(shí)擴(kuò)展。所以要分目標(biāo)字符串長(zhǎng)度為奇數(shù)目標(biāo)字符串為偶數(shù)兩種情況。
題目詳情
Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.想法題目的意思是輸入一個(gè)字符串,我們要找到這個(gè)字符串的最長(zhǎng)的滿足回文條件的子字符串。
回文的意思就是反轉(zhuǎn)字符串后和原字符串相等。Example:
Input: "babad"
Output: "bab"
Note: "aba" is also a valid answer.
Example:
Input: "cbbd"
Output: "bb"
這道題一個(gè)比較好的想法是以遍歷到的每個(gè)元素為起始點(diǎn),向兩邊擴(kuò)展,直到找到滿足以這個(gè)元素為中心的最長(zhǎng)回文字符串。
因?yàn)檫@種想法沒次都是兩邊同時(shí)擴(kuò)展。所以要分目標(biāo)字符串長(zhǎng)度為奇數(shù)、目標(biāo)字符串為偶數(shù)兩種情況。進(jìn)行兩次擴(kuò)展。
Java解法private int maxLen,low; public String longestPalindrome(String s){ int length = s.length(); if(length < 2)return s; for(int i=0;ijavaScript解法= 0 && end < s.length() && (s.charAt(begin)== s.charAt(end))){ begin --; end ++; } if(maxLen < end-begin-1){ low = begin+1; maxLen = end-begin-1; } }
這里面我用的是全局變量。沒次還要重新賦值,感覺有點(diǎn)蠢=..=
/** * @param {string} s * @return {string} */ var maxLen = 0; var low = 0; var longestPalindrome = function(s) { var length = s.length; if(length < 2){ return s; } for(var i=0;i= 0 && end < s.length && (s[start] == s[end])){ start --; end ++; } if(maxLen < end-start - 1){ low = start + 1; maxLen = end-start-1; } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/68625.html
摘要:題目解析題目是要找出最長(zhǎng)的回文字符串,拿到題目的第一反應(yīng)是遍歷子串,然后一直替換最長(zhǎng)的子字符串即可了。但是這種解法遇到極端輸入狀況就會(huì)超時(shí),指定的最長(zhǎng)長(zhǎng)度為,遍歷子串需要兩次循環(huán),判斷回文需要一次循環(huán),所以總的效率為,那么極端狀況會(huì)超時(shí)。 題目 Given a string s, find the longest palindromic substring in s. You may ...
摘要:難度題目是說給出一個(gè)字符串求出這個(gè)字符串的最長(zhǎng)回文的子串回文是指前后完全對(duì)稱的字符串像是之類的都算是回文奇數(shù)字母的回文和偶數(shù)字母的回文中心是不一樣的奇數(shù)字母比如的中心在中間字母上偶數(shù)字母比如的回文在中間兩字母的中心上由此可見回文中心點(diǎn)實(shí)際上 Given a string s, find the longest palindromic substring in s. You may as...
摘要:這種解法中,外層循環(huán)遍歷的是子字符串的中心點(diǎn),內(nèi)層循環(huán)則是從中心擴(kuò)散,一旦不是回文就不再計(jì)算其他以此為中心的較大的字符串。 Longest Palindromic Substring Given a string S, find the longest palindromic substring in S. You may assume that the maximum length ...
摘要:題目即求最長(zhǎng)回文子序列原題鏈接此篇博客僅為學(xué)習(xí)記錄我的解法及代碼暴力解決,用及進(jìn)行兩層遍歷循環(huán)中套一層循環(huán),用遍歷,求最長(zhǎng)回文序列字符串,同時(shí)用變量記錄最長(zhǎng)子序列這種寫法很暴力,效率很低,一層循環(huán),一層循環(huán),回文序列對(duì)比一層,時(shí)間復(fù)雜度為辣 題目: Given a string s, find the longest palindromic substring in s. You ma...
摘要:一題目最長(zhǎng)回文子串給定一個(gè)字符串,找到中最長(zhǎng)的回文子串。你可以假設(shè)的最大長(zhǎng)度為。示例輸入輸出注意也是一個(gè)有效答案。 一、題目 最長(zhǎng)回文子串: 給定一個(gè)字符串 s,找到 s 中最長(zhǎng)的回文子串。你可以假設(shè) s 的最大長(zhǎng)度為 1000。 示例 1: 輸入: babad輸出: bab注意: aba 也是一個(gè)有效答案。 示例 2: 輸入: cbbd輸出: bb 二、我的答案 思路 1.排...
閱讀 3139·2021-11-24 10:34
閱讀 3403·2021-11-22 13:53
閱讀 2687·2021-11-22 12:03
閱讀 3663·2021-09-26 09:47
閱讀 3069·2021-09-23 11:21
閱讀 4958·2021-09-22 15:08
閱讀 3388·2021-07-23 10:59
閱讀 1320·2019-08-29 18:31