python 小题
python 小题:给定一个字符串,找出不含有重复字符的最长子串的长度。
示例 1:
输入: "abcabcbb"输出: 3 解释: 无重复字符的最长子串是 "abc",其长度为 3。
示例 2:
输入: "bbbbb"输出: 1解释: 无重复字符的最长子串是 "b",其长度为 1。
示例 3:
输入: "pwwkew"输出: 3解释: 无重复字符的最长子串是 "wke",其长度为 3。
请注意,答案必须是一个子串,"pwke" 是一个子序列 而不是子串
def func(s): if not isinstance(s, str): # 判断传入进来的是否是字符串类型的参数 return None list1 = [] # 创建一个列表,用于存储所以的字串 result = "" # 创建一个空字符串,拼接字串 for i in range(len(s)): # 按索引遍历 if s[i] not in result: # 如果没有遇到相同的,那么就为把它拼接在一个字串里面 result +=s[i] else: # 如果遇到不相同的,那么把拼接的字串放进列表里面 list1.append(result) result = "" # 切初始化 收集字串的容器 result +=s[i] # 然后把当前的这个元素添加到容器里面 word = max(list1, key=len) # 最后只需要在里面筛选出长度最长的字串即可 print(word) # 打印字串 return len(word) # 返回长度