题解 | #密码截取#

密码截取

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;

function checkSame(sliceArra) {
    const num = sliceArra.length;
	// 需要对比的索引 奇数就是中间的数字可忽略
    const l = Math.floor(num / 2);
    let res = true;
    for (let i = 0; i < l; i ++) {
        // 判断是否对成的数组 存在不等就是不对成
        if (sliceArra[i] != sliceArra[num - i - 1]) {
            res = false;
            break;
        }
    }
    return res;
}

void async function () {
    // Write your code here
    while(line = await readline()){
        const strArra = `${line}`.split('');
        const len = strArra.length;
        let max = 1;

        // 假设最大的对称长度就是字符串的长度
		// 依次逐渐递减
        for (let i1 = len; i1 > 1;i1--) {
			// 在某个长度下 可以截取的字符串种类
            for (let i2 = 0; i2 < len - i1 + 1;i2++) {
                let sliceArra = strArra.slice(i2, i1 + i2);
                if (checkSame(sliceArra)) {
                    max = sliceArra.length;
                    break;
                }
            }
            if (max > 1) {
                break;
            }
        }
        console.log(max);
    }
}()

全部评论

相关推荐

11-19 18:44
已编辑
成都理工大学 Java
程序员花海:我面试过100+校招生,大厂后端面试不看ACM,竞赛经历含金量低于你有几份大厂实习 这个简历整体来看不错 可以海投
如何写一份好简历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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