• 主页
  • 个人简介
    • 圣墨 photo

      圣墨

      一个爱折腾,有诗有远方的人

    • Learn More
    • Github
    • Cnblogs
    • Weibo
  • 文章
    • 所有文章
    • 所有标签
  • Html&Css
  • Javascript
  • 设计模式
  • 前端性能优化
  • 原生实现专题
  • 数据结构与算法
  • Book
  • 面试题
  • 前端工具
  • 随记

String

22 Oct 2019

Reading time ~1 minute

  • 0.1. 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
  • 0.2. 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

0.1. 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

示例:

输入: "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLongestSubstring = function (s) {
    let len = 0;
    let str = '';
    for (let i = 0; i < s.length; i++) {
        if (str.indexOf(s[i]) === -1) {
            str += s[i];
            if (str.length > len) {
                len = str.length;
            }
        } else {
            str += s[i];
            str = str.slice(str.indexOf(s[i]) +1);
        }
    }
    return len;
};

0.2. 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

回文:通俗的说,就是倒着念正者念都一样,前后对称。如: “上海自来水来自海上”。

示例:

输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。


数据结构与算法  微博  QQ  朋友圈