不要心存侥幸,避免贪婪的心作怪,这会令你思考发生短路。如果你不是步步踏实,就容易掉入不切实际的冒险。
本文实例讲述了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程序设计有所帮助。
到此这篇关于Python查找最长不包含重复字符的子字符串算法示例就介绍到这了。穿过层层叠叠的流离时光,越过跌跌荡荡的万水千山,我一直走,一直走,来到你的面前,自此,驻足,沦落。早安!更多相关Python查找最长不包含重复字符的子字符串算法示例内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!