python自带max函数,或用object参数 |
我也是小白一只。不过写了一个你可以试试看。 str1 = raw_input("input first String") str2 = raw_input("input second String") restr1 = str1.upper() restr2 = str2.upper() little_len = 0 startindex = 0 endindex = 0 flag = False targestr = "" compstr = "" res = [] def compar1_2(sta, end, targ): return targ[sta: end] if restr1.__len__() > restr2.__len__(): little_len = restr2.__len__() targestr = restr2 compstr = restr1 else: little_len = restr1.__len__() targestr = restr1 compstr = restr2 while endindex <= little_len: cutstr = compar1_2(startindex, endindex, targestr) if cutstr in compstr: res.append(cutstr) endindex += 1 flag = True continue else: if flag: startindex = endindex - 1 else: startindex = endindex endindex += 1 flag = False continue print max(map(len, res)) |
我后来想了,下面是程序,有一个BUG就是如果有俩组长度一样的话它只能保留下一组 str1=raw_input().upper() str2=raw_input().upper() n=0 r=[] if len(str1)>len(str2): for i in range(0,len(str2)): for j in range(len(str2)-1,i-1,-1): if (str2[i:j+1] in str1) and (j-i>=n): n=j-i r=str2[i:j+1] else : for i in range(0,len(str1)): for j in range(len(str1)-1,i-1,-1): if (str1[i:j+1] in str2) and (j-i>=n): n=j-i r=str1[i:j+1] if len(r)!=0: print r else: print "None" |