javascript - 求解牛客网的一道lcs算法题
迷茫
迷茫 2017-04-11 12:31:14
[JavaScript讨论组]

题目地址

求解我的答案为什么不能过通过

nk1:构造回文

描述

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

解法

这道题就是动态规划求最大子集的变形,将一个字符串正序和倒序来一次就行了,但是不知道为什么我的函数在题目上的编辑器里不能够通过。。。
var _lcs = function(str) {
    var table = [];
    for (var i = 0; i < str.length + 1; i++) {
        table[i] = [];
        for (var j = 0; j < str.length + 1; j++) {
            table[i][j] = 0;
        }
    }
    for (var a = 1; a < str.length + 1; a++) {
      for (var b = 1; b < str.length + 1; b++) {
        if (str[a] === str[str.length + 1 - b]) {
          table[a][b] = table[a - 1][b - 1] + 1;
        } else if (table[a - 1][b] >= table[a][b]) {
          table[a][b] = Math.max(table[a - 1][b], table[a][b - 1]);
        }
      }
    }
    return table[str.length][str.length];
};

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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