【leetcode】3 无重复字符的最长子串

xiaoxiao2022-06-11  25

题目描述

给定一个字符串,找出不含有重复字符的最长子串的长度。 示例 1:

输入: “abcabcbb” 输出: 3 解释: 无重复字符的最长子串是 “abc”,其长度为 3。

示例 2:

输入: “bbbbb” 输出: 1 解释: 无重复字符的最长子串是 “b”,其长度为 1。

示例 3:

输入: “pwwkew” 输出: 3 解释: 无重复字符的最长子串是 “wke”,其长度为 3。 请注意,答案必须是一个子串,“pwke” 是一个子序列 而不是子串。

思路

我的思路比较简单,就是遍历所有可能长度的子串。但是在遍历之前,我们可以找出字符串中不同字符的个数,该个数就是最大可能的子串长度,然后长度依次减小来遍历字符串。

代码

class Solution: def lengthOfLongestSubstring(self, s): """ :type s: str :rtype: int """ x=len(list(s)) y=len(set(list(s)))#求出最大可能的长度 if x==y: return x else: for i in range(y,0,-1): for j in range(0,x-i+1): if len(s[0+j:i+j])==len(set(s[0+j:i+j])): return i
转载请注明原文地址: https://www.6miu.com/read-4932130.html

最新回复(0)