问题描述:
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
暴力答案:
从多到少,判断所有字符是否有重复出现。
计算时间太长,有待改进。
1 class Solution(object): 2 def lengthOfLongestSubstring(self, s): 3 n=len(s) 4 if n==0:#排除出现空的字符串 5 return 0 6 exit(0) 7 for i in range(n,0,-1):#为了寻找最大值,所以倒叙排列,字符的个数 8 for j in range(0,n+1-i):#每种字符数下,所有连续字符串 9 string=s[j:j+i] 10 r=''.join(x for i,x in enumerate(string) if string.index(x)==i)
#列表推导式,判断下标与字符是否相同,如果有重复就会有差异
#index只会返回第一次出现的下标
##''.join合并字符串
11 if r==string: 12 return len(string) 13 exit(0)程序直接退出