给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
def run(s): n=len(s) #dp[i]:s[0...i]中最长不重复子串的长度,i=0,1,...,n-1 dp=[1 for _ in range(n)] dp[0]=1 for i in range(1,n): p=-1 for j in range(i-1,i-dp[i-1]-1,-1): if s[j]==s[i]: p=j#与s[i]重复字符所在下标j break # 如果当前字符未出现过 if p==-1: dp[i]=dp[i-1]+1 # 如果当前字符出现过 else: dp[i]=i-p return max(dp) while True: try: s=input() res=run(s) print(res) except: break
s = input() if s == '': print(0) else: stack = [] num = 0 stacknum = [] for i in s: if i not in stack: stack.append(i) num += 1 else: stacknum.append(num) num = 0 stack = [i] num += 1 stacknum.append(num) stacknum.sort() print(stacknum[-1])