原题链接: ​​ https://leetcode.com/problems/longest-substring-without-repeating-characters/​


一:原题内容

Given a string, find the length of the longest substring without repeating characters.

Examples:

Given ​​"abcabcbb"​​​, the answer is ​​"abc"​​, which the length is 3.

Given ​​"bbbbb"​​​, the answer is ​​"b"​​, with the length of 1.

Given ​​"pwwkew"​​​, the answer is ​​"wke"​​, with the length of 3. Note that the answer must be asubstring,​​"pwke"​​ is a subsequence and not a substring.


二:AC代码

class Solution 
{
public:
int lengthOfLongestSubstring(string s)
{
int flag[128]={0};
int ans=0;//the answer
int j=0;

for(int i=0;i<s.size();i++)
{
if(flag[s[i]]>0)
{
j=max(j,flag[s[i]]);
}

flag[s[i]]=i+1;
ans=max(ans,i-j+1);
}

return ans;
}
};


class Solution(object):
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""

ret=0
left=0
d={}

for index,value in enumerate(s):
if value in d and d[value]>=left:
left=d[value]+1

d[value]=index
ret=max(ret,index-left+1)
return ret





​​返回LeetCode 题解目录​​