题解 | #密码截取#
密码截取
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 () {
// Write your code here
// while(line = await readline()){
// let tokens = line.split(' ');
// let a = parseInt(tokens[0]);
// let b = parseInt(tokens[1]);
// console.log(a + b);
// }
let line = await readline();
// dp[i][j]=s[i]==s[j]&&dp[i+1][j-1]
// let dp = new Array(line.length).fill(0).map(() => {
// return new Array(line.length).fill(false);
// });
let memo = {};
// console.log(line.length)
let maxlen = 1;
for (let i = line.length - 1; i >= 0; i--) {
for (let j = i + 1; j < line.length; j++) {
if (line[i] == line[j]) {
let key = `${i}-${j}`;
if (j - i + 1 <= 3) {
memo[key] = true;
} else {
let prevKey = `${i + 1}-${j - 1}`;
memo[key] = memo[prevKey];
}
if (memo[key] ) {
maxlen = Math.max(maxlen, j - i + 1);
}
}
}
}
console.log(maxlen);
})();
小天才公司福利 1235人发布