题解 | #密码截取#

密码截取

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 dp = [];
        dp[0] = 1;
        for (let i = 1; i < line.length; i++) {
            dp[i] = dp[i-1];
            for (let j = 0; j < i; j++) {
                //从j=0开始遍历,一旦找到line.slice(j, i+1)为密码,重新定义dp[i],同时break;
                if (line[j] == line[i] && line.slice(j, i+1) == line.slice(j, i+1).split('').reverse().join('')){
                    dp[i] = Math.max(i-j+1, dp[i]);
                    break;
                }
            }
        }
        console.log(dp[line.length - 1])
    }
}()        


全部评论

相关推荐

10-13 13:49
南京大学 财务
饿魔:笑死我了,你简直是个天才
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务