网站建立不安全怎么设置通过,自己怎么做网站首页,网站开发需要投入多少时间,阿克苏交通建设局网站美美超过管解
题目#xff1a;
3. 无重复字符的最长子串
给定一个字符串 s #xff0c;请你找出其中不含有重复字符的 最长的长度。
示例 1:
输入: s abcabcbb
输出: 3
解释: 因为无重复字符的最长子串是 abc#xff0c;所以其长度为 3。
注…美美超过管解
题目
3. 无重复字符的最长子串
给定一个字符串 s 请你找出其中不含有重复字符的 最长的长度。
示例 1:
输入: s abcabcbb
输出: 3
解释: 因为无重复字符的最长子串是 abc所以其长度为 3。
注意
考虑空字符串问题有重复之后要在重复的那个后面新建序列减少时间故需要列表储存标准做法里用的集合捏
标准做法
把重复的set.removea指针步进没有重复的话b指针一直步进
怎么感觉没有我那个快捏
class Solution(object):def lengthOfLongestSubstring(self, s)::type s: str:rtype: int# 哈希集合记录每个字符是否出现过occ set()n len(s)# 右指针初始值为 -1相当于我们在字符串的左边界的左侧还没有开始移动rk, ans -1, 0for i in range(n):if i ! 0:# 左指针向右移动一格移除一个字符occ.remove(s[i - 1])while rk 1 n and s[rk 1] not in occ:# 不断地移动右指针occ.add(s[rk 1])rk 1# 第 i 到 rk 个字符是一个极长的无重复字符子串ans max(ans, rk - i 1)return ans
是真的
官方 我的【必须记录下来】 自己的做法【通过并超过】
没看解答写了半小时写出来啦中间因为字符串不太熟卡了一下
双指针yyds【这里用滑动窗口捏】
class Solution(object):def lengthOfLongestSubstring(self, s)::type s: str:rtype: int# 先写循环结束条件# 双指针# 放入集合【重大问题有重复之后要在重复的那个后面新建序列需要列表】a 0b 0if s :return 0ls s[a]max_len 1while b len(s)-1:b 1if s[b] in ls:a ls.find(s[b]) 1a ls s[a:b1]else:ls lss[b]cur_len len(ls)if max_len cur_len:max_len cur_lenreturn max_len