给你一个字符串 s,找到 s 中最长的回文子串。
示例 1:
输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。
示例 2:
输入:s = "cbbd"
输出:"bb"
提示:
1 <= s.length <= 1000
s 仅由数字和英文字母组成
这题不看思路真做不出来。。。
- /**
- * @param {string} s
- * @return {string}
- */
- var longestPalindrome = function(s) {
- let str = ""
- for(let i=0; i
length; i++){//abba - //穷举中心点
- let subString1 = findHuiWen(s,i,i)
- let subString2 = findHuiWen(s,i,i+1)
- str = str.length > subString1.length ? str : subString1
- str = str.length > subString2.length ? str : subString2
- }
- return str
- };
- function findHuiWen(s, left, right){
- while(left >=0 && right < s.length) {
- if(s.charAt(left) == s.charAt(right)) {
- left--
- right++
- } else {
- break
- }
- }//执行结束left和right都回退一个,但是substring方法左闭右开[,),因此right保持不变
- return s.substring(left+1,right)
- }
用到的知识点:
charAt() 方法从一个字符串中返回指定的字符。
str.charAt(index)
substring() 方法返回一个字符串在开始索引到结束索引之间的一个子集,或从开始索引直到字符串的末尾的一个子集。
str.substring(indexStart[, indexEnd])