第 11 天 迈向下个阶段努力( leetcode 005 )

JavaScript 解答

var longestPalindrome = function (s) {
    var a = new Date();
    var n = s.length;
    var res = '';
    var dp = [];
    while (dp.push(new Array(n).fill(-1)) < n);
    // console.log(dp);

    for (var i = n - 1; i >= 0; i--) {
        for (var j = i; j < n; j++) {
            dp[i][j] = s[i] === s[j] && ((j - i < 3) || dp[i + 1][j - 1]);
            if (dp[i][j] === undefined) {
                console.log(i, j, s[i], s[j], dp[i + 1][j - 1])
            }
            if (dp[i][j]) {
                var tmp = s.substring(i, j + 1);
                if (tmp.length > res.length) res = tmp;
            }

        }
    }
    // console.log(dp);
    console.log(new Date() - a);

    return res;
};

Ruby 解答

def expand(s, center)  
  li, ri = center.floor, center.ceil  
  if li == ri  
      li -= 1  
      ri += 1  
  end  
  left_space = li  
  right_space = s.length - ri - 1  
  max_space = [left_space, right_space].min  
  most_left = li - max_space  
  while li >= most_left do  
    if s[li] == s[ri]  
      li -= 1  
      ri += 1  
    else  
      break  
    end  
  end  
  [ri - li - 1, li + 1, ri - 1]  
end  
  
def longest_palindrome(s)  
  i = 0  
  max_si, max_ei, max_len = nil, nil, 0  
  while i <= s.length - 1 do  
    len, si, ei = expand(s, i)  
    if max_len < len  
        max_si, max_ei, max_len = si, ei, len  
    end  
    i += 0.5  
  end  
  s[max_si..max_ei]
end

<<:  【Day 13】 实作 - 透过 AWS 服务 - QuickSight 建立互动式仪表板 ( 1 )

>>:  .NET Core第27天_CacheTagHelper的使用

Day7 AR的一些好处(我认为)&免费展览推荐

本节来说明AR中虚拟讯息的种类和它的好处,前面有稍微提到,AR是将虚拟讯息/物件叠加在真实世界中,而...

33岁转职者的前端笔记-DAY 12 一些网页切版技巧的小笔记-Part 3

排版小技巧 比较早期的排版都是用表格(table)的方式来排版,现在不会用表格(table)的方式来...

[30天 Vue学好学满 DAY19] Vuex -2

State 定义状态 store.js state: { // 待办事项 todoList: [&q...

Day 20 - 装个 Nessus 试试

这个旅程走了 2/3 了,还有 1/3(抱头) MAC 环境下安装 Nessus 先到 Nessu...

Day 19 Flask Cookie

讲完前端之後,就一定要说到 Cookie 跟 Session 这两个东西了,这两个是什麽东西呢?又能...