资讯专栏INFORMATION COLUMN

leetcode 无重复字符的最大子串

laoLiueizo / 1985人阅读

摘要:示例输入输出解释因为无重复字符的最长子串是,所以其长度为。请注意,你的答案必须是子串的长度,是一个子序列,不是子串。临时存储子串存储最长子串如果子串中不存在如果子串中存在重复字符的位置截取字符串

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

示例 1:

输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

示例 2:

输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

示例 3:

输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。

 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLongestSubstring = function(s) {
    var tempResult = ""   // 临时存储子串
    var result = ""       // 存储最长子串
    for(var i = s.length-1 ; i>=0 ; i--) {
        if(tempResult.indexOf(s[i]) === -1) {    // 如果子串中不存在s[i]
            tempResult += s[i]
            if(tempResult.length > result.length) result = tempResult;
        } else {   // 如果子串中存在s[i]
            if(tempResult.length > result.length) {
                 result = tempResult
             }
             let index = tempResult.indexOf(s[i])   // 重复字符的位置
             tempResult = tempResult.slice(index+1) + s[i]   // 截取字符串
        }
    }
    return result.length
};

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/99608.html

相关文章

  • leetcode】3. 重复字符最长子串

    摘要:示例输入输出解释因为无重复字符的最长子串是,所以其长度为。请注意,你的答案必须是子串的长度,是一个子序列,不是子串。完成循环后取队列中出现的最大长度即可。 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: abcabcbb 输出: 3 解释: 因为无重复字符的最长子串是 abc,所以其长度为 3。 示例 2: 输入: bbbbb 输出: 1 解释:...

    qc1iu 评论0 收藏0
  • Leetcode 3 Longest Substring Without Repeat... 最长

    摘要:难度题意是求最长无重复子串给出一个字符串从所有子串中找出最长且没有重复字母的子串的长度我的解法是以为例使用一个记录当前子串遇到的所有字符用一个游标从头开始读取字符加入到中如果碰到了重复字符遇到了重复则从当前子串的头部的字符开始将该字符从中移 Longest Substring Without Repeating CharactersGiven a string, find the le...

    RyanHoo 评论0 收藏0
  • LeetCode3.重复字符最长子串JavaScript

    摘要:示例输入输出解释因为无重复字符的最长子串是,所以其长度为。请注意,你的答案必须是子串的长度,是一个子序列,不是子串。 LeetCode3.无重复字符的最长子串JavaScript 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 示例 1: 输入: abcabcbb输出: 3 解释: 因为无重复字符的最长子串是 abc,所以其长度为 3。 示例 2: 输入: bbbbb输出...

    vboy1010 评论0 收藏0
  • LeetCode 3——重复字符最长子串

    摘要:题目解答方法一我们从前往后遍历字符串,代表最长子串的起始位置,一开始设置为零。如果没有遇到重复字符,则更新子串的长度,向后遍历。最长子串的起始位置重复的字符在子串中的位置初始化映射自动初始化为零获取更多精彩,请关注 1. 题目 showImg(https://segmentfault.com/img/remote/1460000016867082); 2. 解答 2.1. 方法一 我们...

    Rocture 评论0 收藏0
  • LeetCode.3 重复字符最长子串(JS)

    摘要:先跳到第三题是因为第二题第一眼没读懂一题目无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例输入输出解释因为无重复字符的最长子串是,所以其长度为。以此来实现判断是否包含重复字符。 先跳到第三题是因为第二题第一眼没读懂 一、题目 无重复字符的最长子串: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例1 输入: abcabcbb输...

    wthee 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<