diff --git a/3-240603-pass/main.py b/3-240603-pass/main.py new file mode 100644 index 0000000..1a74d59 --- /dev/null +++ b/3-240603-pass/main.py @@ -0,0 +1,36 @@ +class Solution: + def lengthOfLongestSubstring(self, s: str) -> int: + dic = {} + def encode(ch) -> int: + if ch not in dic: + dic[ch] = len(dic) + return dic[ch] + + l = [0 for i in range(108)] + rlt = 0 + start = 0 + + for i, ch in enumerate(s): + idx = encode(ch) + if(l[idx] >= 1): + rlt = max(rlt, i - start ) + # print("now", start, rlt) + while start < i and l[idx] >= 1: + tmp = encode(s[start]) + start = start + 1 + l[tmp] -= 1 + l[idx] += 1 + # print(ch, start, l ) + rlt = max(rlt, len(s) - start ) + if rlt == 0: return len(s) + return rlt + +sol = Solution() +print(sol.lengthOfLongestSubstring("abcabcbb")) +print(sol.lengthOfLongestSubstring("bbbbb")) +print(sol.lengthOfLongestSubstring("pwwkew")) +print(sol.lengthOfLongestSubstring("abcde")) +print(sol.lengthOfLongestSubstring("abcdbej")) +print(sol.lengthOfLongestSubstring("bbcdjeb")) +print(sol.lengthOfLongestSubstring(" ")) +print(sol.lengthOfLongestSubstring("1 b 234aac 2")) \ No newline at end of file