3 need thinking more
This commit is contained in:
		
							
								
								
									
										36
									
								
								3-240603-pass/main.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								3-240603-pass/main.py
									
									
									
									
									
										Normal file
									
								
							| @@ -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")) | ||||
		Reference in New Issue
	
	Block a user