首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

LeetCode:最长不含重复字符字符串

解题思路思考:   以abcabcbb为例,找出以每个字符结束,不包含重复字符最长子串。那么其中最长那个字符串即为答案。...对于示例一字符串,我们列举出这些结果,其中括号中表示选中字符以及最长字符串: 以 [a]bcabcbb 结束最长字符串为[a]bcabcbb,长度为1 以 a[b]cabcbb 结束最长字符串为...[ab]cabcbb,长度为2 以 ab[c]abcbb 结束最长字符串为[abc]abcbb,长度为3 以 abc[a]bcbb 结束最长字符串为a[bca]bcbb,长度为3 以 abca[b]...cbb 结束最长字符串为ab[cab]cbb,长度为3 以 abcab[c]bb 结束最长字符串为abc[abc]bb,长度为3 以 abcabc[b]b 结束最长字符串为abcab[cb]b,长度为...,表示:比如abcabcaa 现在到第4个位置也就是a ,li表示上次a出现位置 li = 1 si: startindex缩写,表示以i-1位置字符结尾最长重复字符串开始索引(最左索引)

84200
您找到你想要的搜索结果了吗?
是的
没有找到

python 重复字符最长子串

给定一个字符串,请你找出其中不含有重复字符 最长子串 长度。 示例 1: 输入: "abcabcbb" 输出: 3  解释: 因为重复字符最长子串是 "abc",所以其长度为 3。...示例 2: 输入: "bbbbb" 输出: 1 解释: 因为重复字符最长子串是 "b",所以其长度为 1。...示例 3: 输入: "pwwkew" 输出: 3 解释: 因为重复字符最长子串是 "wke",所以其长度为 3。     ...重复字符最长子串 30. 串联所有单词串 76. 最小覆盖子串 159. 至多包含两个不同字符最长子串 209. 长度最小数组 239. 滑动窗口最大值 567....针对003 重复字符最长字串,参考如上答案,C++版本。编者很辛苦,没有给出具体解释,我想说出自己一些想法。 1.对于大多数人比较纠结一点 while (lookup.find(s[i]) !

2.1K20

重复字符最长字串

Longest Substring Without Repeating Characters 已知一个字符串,求用该字符串重复字符组成最长子串长度。...算法设计 利用滑动窗口 双指针维护滑动窗口,整个过程,使用begin与i维护一个窗口,该窗口中串满足题目 条件(重复字符),窗口线性向前滑动,整体时间复杂度为O(n)。...1.设置一个记录字符数量字符哈希,char_map; 2.设置一个记录当前满足条件最长子串变量word; 3.设置最长满足条件长度result; 4.设置两个指针(记作指针i与指针begin...)指向字符串第一个字符; 5.i指针向后逐个扫描字符串字符,在这个过程,使用char_map记录字符数量 如果word没出现过该字符:对word尾部添加字符并检查result是否需要更新;...否则:begin指针向前移动,更新char_map字符数量,直到字符s[i]数量为1;更新word,将 word赋值为begin与i之间串。

65430

Python 求解--重复字符最长子串

这是一个比较经典算法题,给定一个字符串 s ,请你找出其中不含有重复字符最长子串长度。...只需要返回最大长度即可 例子: 示例 1:输入: s = "abcabcbb" 输出: 3 解释: 因为重复字符最长子串是 "abc",所以其长度为 3。...示例 2: 输入: s = "bbbbb" 输出: 1 解释: 因为重复字符最长子串是 "b",所以其长度为 1。...解法一: 明确记录两个信息,一个重复字符内容max_string,一个是重复字符长度max_length, 首先对字符串进行遍历,如果遍历字符元素不在 max_string ,表示未出现重复字符串...重复以上步骤直到 right 到达字符串 s 末尾。最终得到 max_length 即为所求最长子串长度。 这种方法时间复杂度为 O(n),其中 n 是字符串长度。

15610

leetcode重复字符最长字串 python实现

重复字符最长字串是一道字符串处理算法题目,在日常编程,处理字符串是常见任务。用Python来实现leetcode这道算法题,该题目会涉及到一个概念“滑动窗口”。 ?...二、解题思路 先来定义一下“串”,根据题目描述,“串”就是字符串截取某一部分,长度从1到该字符串长度。...”概念和获取方法,自然而然就得到了最朴素也是最“暴力”解法:遍历字符串得到所有“串”,然后判断每个“串”是否有重复字符,最终就会得到重复最长子串了。...这个“暴力”算法,计算所有时间复杂度是 O(n2),而判断一个字符串是否有重复字符,又要从头到尾遍历一遍该字符串,所有最终时间复杂度可以达到 O(n3)。...结合题目中例子“abcabcbb”这个字符串,我们来看看如何找它重复最长子串。 首先,我们定义窗口两端:begin和end,分别表示要找开头和结尾。

1.7K10

【LeetCode】重复字符串最长子串

题目描述 给定一个字符串,请你找出其中不含有重复字符 最长子串 长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为重复字符最长子串是 "abc",所以其长度为 3。...示例 2: 输入: "bbbbb" 输出: 1 解释: 因为重复字符最长子串是 "b",所以其长度为 1。...示例 3: 输入: "pwwkew" 输出: 3 解释: 因为重复字符最长子串是 "wke",所以其长度为 3。...题目解析 这道题目标是找出最长子串,并且该串必须不包含重复字符,而且这个子串必须是原字符串连续一部分(见示例3解释说明)。...然后,我们将to指向往后移动,并判断新遍历字符是否已经存在于,如果不存在,则将其加入,并将length进行自增。 ? 直到找到一个已存在于字符,或者to到达字符串末尾。

1K10

重复字符最长子串

今天和大家分享题目是,给定一个字符串,找出不含有重复字符最长子串长度。具体示例如下。...比如:“abcabcbb”找到是“abc”,长度为3,而“bbbbb”找到是“b”,长度为1,那么“abcabwbbd”字符串是什么? 小伙们想一想,这道题应该怎么解决呢?...我思路是这样: 1.首先通过定义函数方法来解决; 2.将所有符合题目要求字符串放在一个空列表; 3.定义两个参数,参数i作用是在给定字符串个数范围内遍历取值; 4.参数j作用是,检测当前字符是否已经在字典存在索引...,如有检测到已经保存有索引并且索引值大于等于起始位置,则表明移动j时,和i之间出现了重复字符,此时对比串长度,并保留大串长度。...print(i,",") 输出结果: 0 , i= 0 2 , i= 1 4 , i= 2 6 , i= 3 8 , i= 4 do something. end. join函数 用于将序列元素以指定字符串连接生成一个新字符串

63630

重复字符最长子串

1.题目 给定一个字符串,请你找出其中不含有重复字符 最长子串 长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为重复字符最长子串是 "abc",所以其长度为 3。...示例 3: 输入: "pwwkew" 输出: 3 解释: 因为重复字符最长子串是 "wke",所以其长度为 3。 请注意,你答案必须是 长度,"pwke" 是一个序列,不是串。...2.2图解 计算完第一个字符,目前重复字符最长子串是a,所以l=1 计算完第二个字符,目前重复字符最长子串是ab,所以l=2 计算完第三个字符,目前重复字符最长子串是abc,所以l=3 计算完第四个字符...,目前重复字符最长子串是abc,所以l=3 计算完第七个字符,删除b,以及b之前字符,目前重复字符最长子串是cb,所以l=2 计算完第八个字符,删除b,以及b之前字符,目前重复字符最长子串是...,但需要保证这两个指针对应没有重复字符

68610

重复字符最长子串

一、描述 给定一个字符串,请你找出其中不含有重复字符 最长 长度。...输入: "abcabcbb" 输出: 3 解释: 最长子串是 "abc" 同类:给一个字符串str,找到str中最长连续串(不区分大小写),返回其长度。 思考 60秒 。。。...二、思路 如何判断一个串没有重复字符--->遍历过程 判断[start,i] 没有重复记录 是统计个数做到 如果重复多次,舍去最早出现。 这就是滑动窗口。...三、代码 class Solution { public: //看到这个题目 输入: "bbbbb" ,我马上想到map 统计每个字符个数, //这里让统计key 可能是任意字符长度串...,用每个字符作为key,永远不可能越界。 //如果重复出现。舍去后面字符重新计算。

50930

重复字符最长子串

JavaScript实现LeetCode第3题:重复字符最长子串 题目描述 给定一个字符串,请你找出其中不含有重复字符 最长子串 长度。...示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为重复字符最长子串是 "abc",所以其长度为 3。...示例 2: 输入: "bbbbb" 输出: 1 解释: 因为重复字符最长子串是 "b",所以其长度为 1。...示例 3: 输入: "pwwkew" 输出: 3 解释: 因为重复字符最长子串是 "wke",所以其长度为 3。请注意,你答案必须是 长度,"pwke" 是一个序列,不是串。...解题思路 这是一道动态规划题目 1.声明两个变量 currentString:当前重复字符串, max:重复字符最大子串长度 2.判断当前最长是否有该字母s[i], 如果没有,则加上s[

80020

重复字符最长子串

重复字符最长子串 给定一个字符串,请你找出其中不含有重复字符 最长子串 长度。...示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为重复字符最长子串是 "abc",所以其长度为 3。...示例 2: 输入: s = "bbbbb" 输出: 1 解释: 因为重复字符最长子串是 "b",所以其长度为 1。...示例 3: 输入: s = "pwwkew" 输出: 3 解释: 因为重复字符最长子串是 "wke",所以其长度为 3。...来存储最长子串长度,这样内存占用会更小; 最长子串其实就可以看成滑动窗口,左下标 i 就是窗口左侧位置,右下标 j 就是窗口右侧位置; 当遍历字符串时候,就可以通过左坐标 i 来控制窗口左侧位置移动

48140

重复字符最长子串

---- 题目描述 给定一个字符串,请你找出其中不含有重复字符最长子串长度。...示例 2: 输入: “bbbbb” 输出: 1 解释: 因为重复字符最长子串是 “b”,所以其长度为 1。...示例 3: 输入: “pwwkew” 输出: 3 解释: 因为重复字符最长子串是 “wke”,所以其长度为 3。 注意,你答案必须是长度,”pwke” 是一个序列,不是串。...队列实现 本题是计算最长重复串,而串肯定是连续。我们肯定都能想到,要遍历下输入字符串,那么遍历过程,我们需要做什么呢?既然是计算字串长度,那么我们遍历过程中就要将字串保存下来。...| 力扣(LeetCode) 重复字符最长子串 | 题解(LeetCode)

37310

重复字符最长子串

定义一个map数据结构存储(k,v),其中key值为字符,value值为字符位置+1,加1表示从字符位置后一个才开始不重复 我们定义不重复开始位置为start,结束位置为end 随着end不断遍历向后...,会遇到与【start,end】区间内字符相同情况,此时将字符作为key值,获取其value值,并更新start,此时【start,end】区间内不存在重复字符 无论是否更新start,都会更新其map...char element=s.charAt(end); if (map.containsKey(element)){ //为了防止连续重复字符...,这里要进行一次判断 //+1表示该元素后一个元素才是不重复字符串开始 start=Math.max(map.get(element)+...1,start); } max=Math.max(max,end-start+1); //保存最后一个该结点位置;

40274

重复字符最长子串

给定一个字符串,请你找出其中不含有重复字符 最长子串 长度。...示例 2: 输入: s = “bbbbb” 输出: 1 解释: 因为重复字符最长子串是 “b”,所以其长度为 1。...0 { return 0; } int i = 0, j = 0;//i指向重复字符第一个位置,j指向重复字符最后一个字符d后面一个位置 int max =1;/.../假设当前重复字符串最长为1,每一次找到更长子串长度就更新max for (; j <s.length(); j++)//对s串进行遍历操作 { //检查当前i---j这个区间里面有没有重复元素...//每次新加入一个元素,就把新加入元素与前面字符串进行比较,确保没有与前面字符串某个字符重复 //如果当前j指向字符某个字符重复,就把i移动到j位置 //将新加入字符与前面的重复串进行比较

56420

LeetCode - #3 最长重复字符串

描述 给定一个字符串 s , 找出最长重复字符串长度。 2. 示例 示例 1 输入:s = "abcabcbb" 输出:3 解释:最长重复字符串答案是"abc",长度为 3。...示例 2 输入:s = "bbbbb" 输出:1 解释:最长重复字符串答案是"b",长度为 1。...示例 3 输入:s = "pwwkew" 输出:1 解释:最长重复字符串答案是"wke",长度为 3。注意答案必须是字符串,“pwke” 是一个列,而不是一个字符串。...maxLen = max(maxLen, i - startIdx + 1) } return maxLen } } 主要思想:使用字典存储非重复字符串下一个可能有效字符位置...,然后迭代字符串更新 maxLen、dictionary 和遇到重复 startIdx。

48620
领券