python实现找出来一个字符串中最长不重复子串

来源:互联网 发布:无经验美工如何面试 编辑:程序博客网 时间:2024/05/17 23:58

刚结束的一个笔试题,很简单,不多说简单贴一下具体的实现:


#!usr/bin/env python#encoding:utf-8'''__Author__:沂水寒城功能:找出来一个字符串中最长不重复子串'''def find_longest_no_repeat_substr(one_str):    '''    找出来一个字符串中最长不重复子串    '''    res_list=[]    length=len(one_str)    for i in range(length):        tmp=one_str[i]        for j in range(i+1, length):            if one_str[j] not in tmp:                tmp+=one_str[j]            else:                break        res_list.append(tmp)    res_list.sort(lambda x,y:cmp(len(x),len(y)))    return res_list[-1]if __name__ == '__main__':    one_str_list=['120135435','abdfkjkgdok','123456780423349']    for one_str in one_str_list:        res=find_longest_no_repeat_substr(one_str)        print '{0}最长非重复子串为:{1}'.format(one_str, res)


结果如下:


120135435最长非重复子串为:201354abdfkjkgdok最长非重复子串为:abdfkj123456780423349最长非重复子串为:123456780


原创粉丝点击