题解 | #密码截取#
密码截取
https://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1
const rl = require("readline").createInterface({ input: process.stdin }); var iter = rl[Symbol.asyncIterator](); const readline = async () => (await iter.next()).value; // 寻找最长的回文串:暴力法 void async function () { const line = await readline(); const len = line.length; let max = 0; for(let i = 0; i < len; i++){ for(let j = 0; j <= len; j++){ if(j-i<max || line.charAt(i) != line.charAt(j-1)) continue; const str = line.slice(i,j); if(str === str.split("").reverse().join("")) max = str.length; } } console.log(max); }() // 寻找最长的回文串:中心扩展算法 void (async function () { const line = await readline(); const len = line.length; const expandAroundCenter = (i,j) =>{ let left = i, right = j; while(left >= 0 && right < len && line.charAt(left) === line.charAt(right)) { left--; right++; } return right-left-1; } let max = 0; for (let i = 0; i < len; i++) { max = Math.max(expandAroundCenter(i,i),expandAroundCenter(i,i+1),max); } console.log(max); })();