3.lengthOfLongestSubstring

Q:

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

 

Example 1:

Input: s = "abcabcbb"
Output: 3
Explanation: The answer is "abc", with the length of 3.

Example 2:

Input: s = "bbbbb"
Output: 1
Explanation: The answer is "b", with the length of 1.

Example 3:

Input: s = "pwwkew"
Output: 3
Explanation: The answer is "wke", with the length of 3.
Notice that the answer must be a substring, "pwke" is a subsequence and not a substring.

Example 4:

Input: s = ""
Output: 0

Example 5:

Input: s = "dvdf"
Output: 3

Constraints:

  • 0 <= s.length <= 5 * 104
  • s consists of English letters, digits, symbols and spaces.

Answer

1.

class Solution(object):
    def lengthOfLongestSubstring(self, s):
        """
        :type s: str
        :rtype: int
        """
        output = []
        l_max=0
        if s:
            for x in s:
                if x not in output:
                    output.append(x)
                    l_1=len(output)
                    if l_1 > l_max: l_max=l_1
                else:
                    i = output.index(x)
                    output=output[i+1:]
                    output.append(x)
        return l_max

 2.

#!/usr/bin/python
class Solution(object):
    def lengthOfLongestSubstring(self, s):
        """
        :type s: str
        :rtype: int
        """
    start=max_l=0
    used_chart = {}
    for i in range(len(s)):
        print("s[i],i",s[i],i)
        if s[i] in used_chart and start <=used_chart[s[i]]:
            start=used_chart[s[i]]+1
            
        else:
            max_l=max(max_l,i-start+1)
        used_chart[s[i]] = i
    return(max_l)

 

posted on 2021-07-31 13:33  guolongnv  阅读(74)  评论(0编辑  收藏  举报