LeeCode-无重复字符的最长子串(python)

简介: LeeCode-无重复字符的最长子串(python)

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

示例 1:


输入: s = "abcabcbb"

输出: 3

解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

示例 2:


输入: s = "bbbbb"

输出: 1

解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

示例 3:


输入: s = "pwwkew"

输出: 3

解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。


请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。


提示:


0 <= s.length <= 5 * 104

s 由英文字母、数字、符号和空格组成


来源:力扣(LeetCode)

链接:https://leetcode.cn/problems/longest-substring-without-repeating-characters


本来以为这题是最长公共子序列,没想到很简单。


# -*- coding: utf-8 -*-
# @Time : 2022/7/6 14:51
# @Author : 凌贤文
# @Email : lingxw@zjnu.edu.cn
class Solution(object):
    def lengthOfLongestSubstring(self, s):
        """
        :type s: str
        :rtype: int
        """
        # 存储历史循环中最长的子串长度
        max_len = 0
        # 判断传入的字符串是否为空
        if s is None or len(s) == 0:
            return max_len
        for i in range(len(s)):
            # 定义一个list,存储不重复的字符和字符所在的下标
            ans = [s[i]]
            for j in range(i+1, len(s)):
                if s[j] in ans:
                    max_len = max(len(ans), max_len)
                    break
                else:
                    ans.append(s[j])
                max_len = max(len(ans), max_len)
        return max_len
if __name__ == '__main__':
    sol = Solution()
    print(sol.lengthOfLongestSubstring("bbbbb"))
    print(sol.lengthOfLongestSubstring("eeydgwdykpv"))
    print(sol.lengthOfLongestSubstring("pwwkew"))
    print(sol.lengthOfLongestSubstring("abc"))


目录
相关文章
|
3月前
|
存储 算法 Python
python 无重复字符的最长子串 多种解法
python 无重复字符的最长子串 多种解法
|
7月前
|
Python Windows
用 Python 将神龙大侠搞怪 GIF 转为字符动画
用 Python 将神龙大侠搞怪 GIF 转为字符动画
59 0
用 Python 将神龙大侠搞怪 GIF 转为字符动画
|
1月前
|
索引 Python
Python 超高频常见字符操作【建议收藏】
Python 超高频常见字符操作【建议收藏】
|
2月前
|
Python
在Python中实现图片转字符画灰度处理或灰色量化
在Python中实现图片转字符画灰度处理或灰色量化
25 1
|
2月前
|
计算机视觉 Python
在Python中实现图片转字符画打开图片
在Python中实现图片转字符画打开图片
10 1
|
2月前
|
Python
在Python中实现图片转字符画导入所需库
在Python中实现图片转字符画导入所需库
10 1
|
2月前
|
存储 算法 计算机视觉
在Python中实现图片转字符画
在Python中实现图片转字符画
14 1
|
3月前
|
Shell Unix Linux
Linux 终端命令之文件浏览(3) less
Linux 终端命令之文件浏览(3) less
30 0
Linux 终端命令之文件浏览(3) less
|
3月前
|
算法 Python Java
Python每日一练(20230426) 删除重复字符、颜色分类、计算圆周率
Python每日一练(20230426) 删除重复字符、颜色分类、计算圆周率
39 0
Python每日一练(20230426) 删除重复字符、颜色分类、计算圆周率
|
3月前
|
Python 缓存 机器学习/深度学习
Python每日一练(20230331) 阶乘后的零、无重复最长子串、LRU缓存机制
Python每日一练(20230331) 阶乘后的零、无重复最长子串、LRU缓存机制
33 0
Python每日一练(20230331) 阶乘后的零、无重复最长子串、LRU缓存机制