leetcode 寻找重复数,删除排序数组中的重复项 Python
1.暴力枚举解法:
class Solution(object):def lengthlogestsubstring(self,s): :type s:str:rtype:int if len(s)==0 elif len(s)==len(s)elif len(s))==1:return 1 else:l=[]for I in range(len(s)):index _ I=s[I 1:].index(s[I])I 1 if s[I]in s[I 1:]else len(s)end_i=I max(l)if len(l)0 else I for j in range(index _ I,end _ I,-1):sub=s[I:j]if len(list(set(sub)))==len(sub):l . append(len(sub))break return max(l)#暴力解法暴力枚举解法,很容易出现超出时间限制得问题,需要想许多的限制条件。例如枚举时,只寻找长度比当前结果中最大长度大的子序列,预先检查是否是否为相同字符的字符串等。
2.窗移动方法:
class Solution(object):def lengtholongestsubstring(self,s): :type s:str:rtype:int l=[]RES=[]for I in s:if I not in l:l . append(I)else:RES . append(len(l))index _ I=l . index(I)l=l[index _ I 1:]l . append(I)RES . append(len(l))如果RES!=[] else 0 3 .两种方法的结果比较
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。