javascript - 一道腾讯的算法题
PHP中文网
PHP中文网 2017-04-11 12:47:15
[JavaScript讨论组]

给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?
输出需要删除的字符个数。
输入要求:输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.
输出要求:对于每组数据,输出一个整数,代表最少需要删除的字符个数。

我的思路是这样的遍历实例化agruguments数组之后,然后对数组进行遍历,如果i对应的那个字母仅仅出现一次,而且arr[i-1]!=arr[i+1],那么就删除i对应的那个字母,然后在另个负责计数的变量里面加1。
可是看完答案我只能看懂一部分,求各位大大解答一下。

function slect(){
    var arr=new Array();
     arr=Array.prototype.slipt(arguments);
     for(var i=0;i
PHP中文网
PHP中文网

认证0级讲师

全部回复(1)
黄舟
const minCut = function(s) {
    const n = s.length;
    const cut = [];
    for (let i = 0; i <= n; i++) cut[i] = i - 1;
    for (let i = 0; i < n; i++) {
        for (let j = 0; i - j >= 0 && i + j < n && s[i - j] == s[i + j]; j++)
            cut[i + j + 1] = Math.min(cut[i + j + 1], 1 + cut[i - j]);
        for (let j = 1; i - j + 1 >= 0 && i + j < n && s[i - j + 1] == s[i + j]; j++) // even length palindrome
            cut[i + j + 1] = Math.min(cut[i + j + 1], 1 + cut[i - j + 1]);
    }
    return cut[n]
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号