标签:return 开始 c语言 sub substr 分享图片 not 历史 for
哎哟我天啊。这道题快折磨死我了。刚开始连题都没看明白,就是不知道substring是什么意思。研究了好长时间才看出来的。
光辉历史呀。。。菜死了
Given a string, find the length of the longest substring without repeating characters.
Example 1:Input: "abcabcbb" Output: 3 Explanation: The answer is "abc"
, with the length of 3.
Example 2:Input: "bbbbb" Output: 1 Explanation: The answer is"b"
, with the length of 1.Example 3:Input: "pwwkew" Output: 3 Explanation: The answer is"wke"
, with the length of 3. Note that the answer must be a substring,"pwke"
is a subsequence and not a substring.
class Solution: def lengthOfLongestSubstring(self, s): """ :type s: str :rtype: int """ r="" #储存无重复子串 maxNum=0 #最大无重复子串的长度 for i in s: if i not in r: #如果不在子串里,就代表无重复,直接插进去 r=r+i else: #如果在子串里,就代表重复了,不能直接插进去 if len(r)>maxNum:maxNum=len(r) #先算出来上一个子串的长度 r = r[r.index(i)+1:]+i #把这个相同字符后面的保留。比如"dvdf"。第一个子串是"dv",再遍历到d的时候,需要把第一个d后面的v保留,再形成一个"vd"子串,这样还是无重复子串。不保留v的话,就不是一个完整的无重复子串了 if len(r) > maxNum: maxNum = len(r) return maxNum s="dvdf" a=Solution() print(a.lengthOfLongestSubstring(s))
C语言版的先不写了吧,我已经花了快两个小时了。按照这个思路写,完全没问题。
LeetCode——Problem3:Longest Substring Without Repeating Characters
标签:return 开始 c语言 sub substr 分享图片 not 历史 for
原文地址:https://www.cnblogs.com/albert-yzp/p/9695107.html