无重复字符的最长子串
Posted WINNER_QIUQIU
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无重复字符的最长子串相关的知识,希望对你有一定的参考价值。
题目
给定一个字符串,请找出其中不含有重复字符的最长子串的长度。
分析:
针对此题目,我的第一想法是遍历整个列表,将不重复的元素放在新列表中。实现起来很简单:
list1 = list(input())
n = len(list1)
list2 = []
for i in range(n):
if list1[i] not in list2:
list2.append(list1[i])
else:
break
print(list2)
print(len(list2))
其中,列表1用来记录所有的元素;列表2用来存储不重复元素。
上面的程序得到的是不重复元素所组成的列表,还不能称之为子串。若要得到最长子串,应找出该列表中所有子串然后通过比较得到最长子串。代码如下:
list1 = list(input())
n = len(list1)
list2 = []
result = []
for i in range(n):#遍历列表
for j in range(i,n):
if list1[j] not in list2:
list2.append(list1[j])
else:
break
result.append(len(list2))
print(list2)
list2 = []
print(max(result))
输入描述:
一行一个字符串
输出描述:
输出一个数字表示最长子串的长度
算例一:
输入:
abcabcbb
输出:
3
算例二:
输入:
pwwkew
输出:
3
以上是关于无重复字符的最长子串的主要内容,如果未能解决你的问题,请参考以下文章