def lenLongestSubstring( stringX ):
maxi = 0
trackList = [] # List to store the chars that have been visited
for char in stringX :
if ( char not in trackList ):
trackList.append(char)
else: # found a repeating char
listLen = len(trackList)
maxi = max( maxi, listLen )
trackList[:] = [char] # clears the list
return max( maxi, len(trackList) )
def main():
print lenLongestSubstring("abcadeftgh")
print "\nAll asserts PASSED!!, Yaaaaaay!!\n"
if __name__ == "__main__":
main()
ZGVmIGxlbkxvbmdlc3RTdWJzdHJpbmcoIHN0cmluZ1ggKToKICAgIG1heGkgPSAwCiAgICB0cmFja0xpc3QgPSBbXSAjIExpc3QgdG8gc3RvcmUgdGhlIGNoYXJzIHRoYXQgaGF2ZSBiZWVuIHZpc2l0ZWQgIAogICAgZm9yIGNoYXIgaW4gc3RyaW5nWCA6CiAgICAgICAgaWYgKCBjaGFyIG5vdCBpbiB0cmFja0xpc3QgKToKICAgICAgICAgICAgdHJhY2tMaXN0LmFwcGVuZChjaGFyKSAKICAgICAgICBlbHNlOiAjIGZvdW5kIGEgcmVwZWF0aW5nIGNoYXIKICAgICAgICAgICAgbGlzdExlbiA9IGxlbih0cmFja0xpc3QpCiAgICAgICAgICAgIG1heGkgPSBtYXgoIG1heGksIGxpc3RMZW4gKQogICAgICAgICAgICB0cmFja0xpc3RbOl0gPSBbY2hhcl0gIyBjbGVhcnMgdGhlIGxpc3QKICAgIHJldHVybiBtYXgoIG1heGksIGxlbih0cmFja0xpc3QpICkKCgpkZWYgbWFpbigpOgogICAgcHJpbnQgbGVuTG9uZ2VzdFN1YnN0cmluZygiYWJjYWRlZnRnaCIpCiAgICBwcmludCAiXG5BbGwgYXNzZXJ0cyBQQVNTRUQhISwgWWFhYWFhYXkhIVxuIgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIG1haW4oKQ==