博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
无重复字符的最长子串
阅读量:706 次
发布时间:2019-03-21

本文共 808 字,大约阅读时间需要 2 分钟。

题目

给定一个字符串,请找出其中不含有重复字符的最长子串的长度。

分析:
针对此题目,我的第一想法是遍历整个列表,将不重复的元素放在新列表中。实现起来很简单:

list1 = list(input())n = len(list1)list2 = []for i in range(n):           if list1[i] not in list2:                   list2.append(list1[i])            else:                breakprint(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

转载地址:http://qtqez.baihongyu.com/

你可能感兴趣的文章