python求最长子串

来源:互联网 发布:数据分析与处理 编辑:程序博客网 时间:2024/06/18 15:24

一、 假定s是小写字母的字符串。编写程序,输出s的最长子串(子串必须是字母顺序)。

如:s = 'azcbobobegghakl',则应输出:

Longest substring in alphabetical order is: beggh

又如:s = 'abcbcd',则应输出第一个子串:

Longest substring in alphabetical order is: abc


#-*- coding:UTF-8 -*-__author__ = "zhangguodong"__time__ ="2017.10.11"from string import lowercasedef max_sub(s):    cont = []    sub = []    for i in s:        if len(sub) >= 1 and lowercase.index(sub[-1]) <= lowercase.index(i):            sub.append(i)            cont.append(''.join(sub))        else:            sub = []            sub.append(i)    # print cont    cont = sorted(cont, key=len, reverse=True)    return cont[0]s1 = 'azcbobobegghakl's2 = 'abcbcd'result1 = max_sub(s1)print "The longest substring of \"%s\" in alphabetical order is:%s" % (s1,result1)result2 = max_sub(s2)print "The longest substring of \"%s\" in alphabetical order is:%s" % (s1,result2)