forked from realpacific/algorithms
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlongestsubstr.py
37 lines (33 loc) · 1.12 KB
/
longestsubstr.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
def lengthOfLongestSubstring(s):
"""
:type s: str
:rtype: int
"""
substring = ""
previous = ""
length = 0
for char in s:
if char not in substring:
print(char, 'not in ', substring)
substring += char
length = len(substring) if length < len(substring) else length
else:
previous = substring
length = len(substring) if length < len(substring) else length
substring = ""
try:
substring = previous[previous.rindex(char) + 1:]
substring += char
print(substring, "try")
except:
substring += char
print(substring, "catch")
print(length, previous, substring)
return length
if __name__ == "__main__":
assert (lengthOfLongestSubstring("pwwkew") == 3)
assert (lengthOfLongestSubstring("abcabcbb") == 3)
assert (lengthOfLongestSubstring("bbbbb") == 1)
assert (lengthOfLongestSubstring("aab") == 2)
assert (lengthOfLongestSubstring("dvdf") == 3)
assert (lengthOfLongestSubstring("anviaj") == 5)