1、问题描述
String:字符串是由数字、字母、下划线等组成的一串字符。字符串的有关操作,各个大厂笔试、面试高频问题,如输入1个字符串,求这个字符串不重复的最长子字符串。
本文用Python语言实现
2、源代码
#找出字符串不重复的最大子字串 def find_max_diff_substring(s): substring = [] slen = len(s) for i in range(slen): tmp = [].copy() tmp.append(s[i]) for j in range(i+1, slen): if s[j] not in tmp: tmp.append(s[j]) else: break if len(tmp) > len(substring): substring = tmp.copy() return ''.join(substring)
3、运行结果
输入字符串s1:sfhskfslgzbxv12345=
s1最长不重复子字符串: kfslgzbxv12345=
4、编码感想
从字符串s1去寻找不重复的子字符串,该substring的起始位置和长度都是不确定。所以遍历s1,从每个字符开始继续向后寻找,直到有重复的字符退出,记录每次寻找结果,并保留每次的最长字符串。依次重复。