Skip to content

Instantly share code, notes, and snippets.

@userkang
Created February 27, 2019 15:31
Show Gist options
  • Save userkang/6239df6be1a829b3e1d31dcca4e4a016 to your computer and use it in GitHub Desktop.
Save userkang/6239df6be1a829b3e1d31dcca4e4a016 to your computer and use it in GitHub Desktop.
最大回文子串
/**
* @param {string} s
* @return {string}
*/
var longestPalindrome = function(s) {
var len = s.length
var maxLen = 0
var res = ''
for (var i = 0; i < len; i ++) {
for (var j = i; j < len; j++) {
var sub = s.slice(i, j + 1)
if (sub && judge(sub) && sub.length >= maxLen) {
maxLen = sub.length
res = sub
}
}
}
return res
};
// 判断是不是回文数
function judge(str) {
if (str.length % 2 === 0) str = makeOdd(str)
var len = str.length
var half = Math.floor(len / 2)
var i = 0
while (i < half + 1) {
if (str[half - i] !== str[half + i]) {
return false
}
i++
}
return true
}
// 偶数变奇数
function makeOdd(str) {
var len = str.length
if (len % 2 !== 0) {
return str
}
var newStr = '#'
for (var i = 0; i < len; i ++) {
newStr += str[i] + '#'
}
return newStr
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment