Python查找最长不包含重复字符的子字符串算法示例
程序员文章站
2023-12-01 23:24:46
本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《python数据结构与算法教程》、《python列表(list)操作技巧总结》、《python编码操作技巧总结》、《python函数使用技巧总结》、《python字符串操作技巧汇总》及《python入门与进阶经典教程》
希望本文所述对大家python程序设计有所帮助。