python字符串找一个最大字符
Python查找最长不包含重复字符的子字符串算法示例本文实例讲述了python查找最长不包含重复字符的子字符串算法。分享给大家供大家参考,具体如下:
题目描述
请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。例如在“arabcacfr”中,最长的不包含重复字符的子字符串是“acfr”,长度为4
采用字典的方法,最后输出所有最长字符的列表
算法示例:
|
# -*- coding:utf-8 -*- #! python3 class solution: def __init__( self ): self .maxstring = [] def longestsubstring( self , inputstring): if inputstring = = '': return '' dic = {} dic = dic.fromkeys(inputstring, 0 ) self .maxstring.append(inputstring[ 0 ]) for i in range ( len (inputstring)): for j in range (i, len (inputstring)): if dic[inputstring[j]] ! = 0 : dic = dic.fromkeys(inputstring, 0 ) break else : if j - i + 1 > len ( self .maxstring[ 0 ]): self .maxstring = [] self .maxstring.append(inputstring[i:j + 1 ]) elif j - i + 1 = = len ( self .maxstring[ 0 ]): self .maxstring.append(inputstring[i:j + 1 ]) dic[inputstring[j]] + = 1 inputstring = 'arabcacfr' sol = solution() sol.longestsubstring(inputstring) print (sol.maxstring) #输出:['rabc', 'acfr'] |
运行结果:
希望本文所述对大家python程序设计有所帮助。
原文链接:https://blog.csdn.net/weixin_36372879/article/details/84861449