前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >力扣——无重复字符的最长子串

力扣——无重复字符的最长子串

作者头像
且陶陶
发布于 2023-04-12 07:32:14
发布于 2023-04-12 07:32:14
23200
代码可运行
举报
文章被收录于专栏:Triciaの小世界Triciaの小世界
运行总次数:0
代码可运行

题目描述

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

示例

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

分析

遍历整个字符串,如果遍历过程中发现了有与之前相同的字符,则比较后续字符与之前是否相同,直到遇到与之前不同的字符。

代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 let lengthOfLongestSubstring = function (s) {
            let minIndex = 0
            let count = 0
            for (let i = 0; i < s.length; i++) {
                //indexOf方法返回的是元素第一次出现的索引
                if (s.indexOf(s[i], minIndex) < i) {
                    // 如果遇到重复的字符,会进入判断
                    minIndex = s.indexOf(s[i], minIndex) + 1
                    // 令索引从下一位开始查找,判断接下来的字符串是否与之前一样
                }
                else {
                    // 获得最长字符串的长度
                    // 比如'ababc' , minIndex = 2 , i = 4 , count = 2
                    count = Math.max(count , i - minIndex + 1)
                }
            }

            return count
        }
  console.log(lengthOfLongestSubstring('ababc')) 

indexOf

indexOf() 方法返回调用它的 String 对象中第一次出现的指定值的索引,从 fromIndex 处进行搜索。如果未找到该值,则返回 -1。

语法: str.indexOf(searchValue [, fromIndex])

参数

1. searchValue

要被查找的字符串值。如果没有提供确切地提供字符串,searchValue 会被强制设置为 "undefined", 然后在当前字符串中查找这个值。

2. fromIndex (可选)

数字表示开始查找的位置。可以是任意整数,默认值为 0。如果 fromIndex 的值小于 0,或者大于 str.length ,那么查找分别从 0 和str.length 开始。

返回值

查找的字符串 searchValue 的第一次出现的索引,如果没有找到,则返回 -1

若被查找的字符串 searchValue 是一个空字符串,将会产生“奇怪”的结果。如果 fromIndex 值为空,或者 fromIndex 值小于被查找的字符串的长度,返回值和以下的 fromIndex 值一样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'hello world'.indexOf('') // 返回 0
'hello world'.indexOf('', 0) // 返回 0
'hello world'.indexOf('', 3) // 返回 3
'hello world'.indexOf('', 8) // 返回 8
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
前端中等算法-无重复字符的最长子串
<!-- 特殊字符串:用于修改/删除markdown的结尾提示语-OBKoro1 -->
OBKoro1
2019/08/09
3580
3. 无重复字符的最长子串
给定 “abcabcbb” ,没有重复字符的最长子串是 “abc” ,那么长度就是3。
张伦聪zhangluncong
2022/10/26
2190
Leetcode 3:无重复字符的最长子串
给定 “abcabcbb” ,没有重复字符的最长子串是 “abc” ,那么长度就是3。
风骨散人Chiam
2020/10/28
2650
3. 无重复字符的最长子串--题解
3. 无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: s = "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入: s = "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串
付威
2021/04/25
4890
一天一大 leet(无重复字符的最长子串)难度:中等-more-001
题目: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 示例 1 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串
前端小书童
2020/09/24
3480
一天一大 leet(无重复字符的最长子串)难度:中等-more-001
LeetCode 3: 无重复字符的最长子串
Given a string, find the length of the longest substring without repeating characters.
爱写bug
2019/12/02
5120
3. 无重复字符的最长子串
GeekLiHua
2025/01/21
570
【LeetCode】无重复字符串最长子串
这道题的目标是找出最长子串,并且该子串必须不包含重复字符,而且这个子串必须是原字符串中连续的一部分(见示例3中的解释说明)。
弗兰克的猫
2019/05/25
1.2K0
LeetCode-3.无重复字符的最长子串
题目 描述 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
悠扬前奏
2020/05/18
1580
LeetCode【3】-- 无重复字符的最长子串
链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters
秦怀杂货店
2022/02/15
2750
LeetCode: 3_Longest Substring Without Repeating Characters | 求没有重复字符的最长子串的长度 | Medium
题目: Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for "abcabcbb" is "abc", which the length is 3. For "bbbbb" the longest substring is "b", with the lengt
Linux云计算网络
2018/01/11
4660
Leetcode 3. 无重复字符的最长子串
输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
zhipingChen
2019/07/15
3730
Leetcode 3. 无重复字符的最长子串
LeetCode 3. 无重复字符的最长子串
https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/
freesan44
2021/10/04
2480
LeetCode 3. 无重复字符的最长子串
Python 版 LeetCode 刷题笔记 #3 无重复字符的最长子串
今天这题目乍一看,在字符串中找来遍历即可,但实际操作下来,还是有些复杂的,也配得上其中等难度的定位了。
TTTEED
2020/07/08
7690
LeetCode - 无重复字符的最长子串
这题仍然是3年前的作品,中等难度的一道题目,每次看自己以前写的代码,毫无注释,然后重新去理解自己的思路,去写解题思路真是痛苦啊...以后得慢慢补上这些注释.
晓痴
2019/07/24
4520
LeetCode - 无重复字符的最长子串
003. 无重复字符的最长子串 | Leetcode题解
题目要求连续, 我们考虑使用滑动窗口。而这道题就是窗口大小不固定的滑动窗口题目,然后让我们求满足条件的窗口大小的最大值,这是一种非常常见的滑动窗口题目。
苏南
2020/12/16
5580
003. 无重复字符的最长子串 | Leetcode题解
力扣3-无重复字符的最长子串
原题链接:https://leetcode.cn/problems/longest-substring-without-repeating-characters/
WuShF
2023/02/16
4660
力扣3-无重复字符的最长子串
无重复字符的最长子串
难度:中等 来源:3. 无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: s = "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入: s = "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,
用户4456933
2021/06/01
5380
Leetcode算法系列| 3. 无重复字符的最长子串
游戏开发小Y
2024/01/18
1520
Leetcode算法系列| 3. 无重复字符的最长子串
【leetcode算法-无重复字符的最长子串】
滑动窗口,通过使用 HashSet 作为滑动窗口,我们可以用 O(1) 的时间来完成对字符是否在当前的子字符串中的检查。滑动窗口是数组/字符串问题中常用的 抽象概念。 窗口通常是在数组/字符串中由开始和结束索引定义的一系列元素的集合,即 [i, j)(左闭,右开)。而滑动窗口是可以将两个边界向某一方向“滑动”的窗口。例如,我们将 [i, j)向右滑动 1 个元素,则它将变为 [i+1, j+1)(左闭,右开)。
用户5640963
2019/07/26
1.4K0
相关推荐
前端中等算法-无重复字符的最长子串
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验