当前位置: 首页 > article >正文

leetcode字符串(一)无重复字符最长子串

题目

3.无重复字符最长子串

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

子串

 的长度。

示例 1:

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

示例 2:

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

示例 3:

输入: s = "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
     请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

思路

使用滑动窗口来进行判断,建立一个滑动窗口temp,依次遍历字符串s,如果该字符不在temp中添加进temp,如果在temp中,将temp从该字符处截取,即从temp中的该字符下一个字符开始的新字符串,去添加该字符串后继续判断

代码

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        result = ''
        temp = ''
        for i in s:
            if i not in temp:
                temp += i
            else:
                temp = temp[temp.index(i)+1:]
                temp += i
            if len(temp) > len(result):
                result = temp

        return len(result)


http://www.kler.cn/a/381787.html

相关文章:

  • 解释下什么是面向对象?面向对象和面向过程的区别?
  • 在Visual Studio 2022中配置C++计算机视觉库Opencv
  • 重拾设计模式--外观模式
  • ubuntu22.04.5本地apt源部署
  • 【ue5学习笔记2】在场景放入一个物体的蓝图输入事件无效?
  • 新能源汽车锂离子电池各参数的时间序列关系
  • Spring Boot实战:构建大学城水电管理系统
  • 太空旅游:科技能否让星辰大海变为现实?
  • Spring源码学习(五):Spring AOP
  • 【综合案例】使用React编写B站评论案例
  • 什么是多因素身份验证(MFA)的安全性?
  • 函数对象笔记
  • vue3 ref,shallowRef,reactive,shallowReactive使用的简单异同点说明
  • sqlserver
  • (蓝桥杯C/C++)——基础算法(上)
  • wpf中行为
  • 【实用技能】在 SQL Server 中使用 LIMIT 子句的替代方案
  • 默认网关的ip为什么要和主机的ip处于一个网络
  • 【AI日记】24.11.05 向量数据库 weaviate、混合搜索、多语言搜索、明确自己的南京
  • SpringBoot在线教育系统:移动学习解决方案
  • ES管理工具Cerebro 0.8.5 Windows版本安装及启动
  • 使用 Spring Boot 集成 Thymeleaf 和 Flying Saucer 实现 PDF 导出
  • 使用vite+react+ts+Ant Design开发后台管理项目(五)
  • HarmonyOS :
  • 09.外观模式设计思想
  • Postman断言与依赖接口测试详解!