题解 | #密码截取#
密码截取
https://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1
/*最长回文子串,马拉车算法,中心扩展的延申,通过加符号确保数据一定是奇数, 在此基础上 头尾控制字符不一样就会匹配不上自动停止 */
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.on("line", function (line) {
//
let lines = "$"+"#"+line.split("").join("#")+"#"+"&" ; //一定奇数,中心为遍历到的数,index (两个index,同时向左右两边扩展),开头结尾数据不一样,一定不匹配
let max = 0;
for(let index in lines){
max = Math.max(max,center(lines,index,index))
}
console.log(max)
});
function center(arr,left,right){
let len = 0 ;
while( arr[left] == arr[right]){
len = right - left +1 ;
left-- ;
right++;
}
return parseInt(len/2)
}