From 9ca72f3125d37aeaaca020bf6d3e009d32e562ab Mon Sep 17 00:00:00 2001 From: mhrooz Date: Tue, 4 Jun 2024 21:20:55 +0200 Subject: [PATCH] 3 need thinking more --- 3-240603-pass/main.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 3-240603-pass/main.py 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