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

news/2024/6/1 23:53:28 标签: python, 动态规划, leetcode

最近做了下leetcode算法的题目,如标题所示,做之前看了下思路讲解,我的思路也很简单,先贴出来题目要求还有代码

题目

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

代码

python"># a = input("请输入字符串")

f = "pwwekw"
left_Num = 0
current_Num = 1
right_Num = 1
for i in range(len(f)):
    if right_Num == len(f):
        break
    if f[right_Num] in f[left_Num:right_Num]:
        if current_Num < (right_Num - left_Num):
            current_Num = right_Num - left_Num
        for a in range(right_Num):
            if f[left_Num] == f[right_Num]:
                left_Num = left_Num+1
                break
            left_Num  = left_Num+1
    right_Num = right_Num+1
print(current_Num)

看到代码很熟悉,像别人讲解的滑动窗口的解题方法
首先就是有两个指针,一个前指针,一个后指针,通过两个指针形成一个窗口,也就是我们要找的子串,比如:当left_Num=0.,right_Num = 1,也就是这个窗口包含的子串就是pw,然后进行下一次的循环,也就是right_Num = 2,此时判断第三个字符也就是w是不是在窗口里面,很明显是,所以此时的最长子串就是pw,也就是current_Num =2,当我们知道有重复字符出现,就需要把前指针拿到第三个字符w作为窗口的第一个字符,然后再移动后指针。大概运行的一部分经过是这样的,

我也只是说出我做时候的思路,讲的不是很好,有错误的请大佬指出,谢谢🤭


http://www.niftyadmin.cn/n/1860929.html

相关文章

python 空语句_Python编程语句学习笔记——高级语法

-1st- if条件语句if condition_1: statement_block_1[elif condition_2: statement_block_2else: statement_block_3]1) elif可以有多个&#xff0c;语法结构不必全&#xff0c;下同 2) 每个条件后面要使用冒号 :3) 使用缩进来划分语句块4) …

百度隐藏的招聘信息

使用lighttable 打开 baidu。com 出现提示&#xff1a; www.baidu.com[1]: Invalid CSS property value: www.baidu.com[1]: Invalid CSS property declaration at: normal www.baidu.com[1]: Invalid CSS property name: behavior home_0a8a22db.js[19]: 一张网页&#xf…

我的第一个网站-七牛云上传图片问题记录

鸽了好久&#xff0c;最近才把我的域名备案好&#xff0c;备案花了差不多半个月&#xff1b;然后我发现因为我的一些图片都比较大&#xff0c;我的云服务器也才1核2G&#xff0c;别人访问起来很卡很卡&#xff0c;要等好久才能把图片加载好。然后我去问了我的师兄&#xff0c;给…

pyside6的MQTT客户端

好久也没写博客了 那肯定不是自己懒&#xff0c;哈哈&#xff0c;这个学期在五月多的时候接手一个项目就没怎么学习新东西&#xff0c;然后也忙于师弟的培训&#xff0c;后面学校的电子设计竞赛也紧接而来&#xff0c;事情有点多&#xff1b;终于忙完了期末&#xff0c;现在也…

[oracle] DBLINK +同义词,实现本地数据库访问另一台机器的数据库

起因&#xff1a;订单表原来在90库上&#xff0c;后各种原因移到了40库上&#xff0c;需访问40库上的订单表。采用DBLINK同义词方法&#xff1a; -- 1 在90机器上用GPSV4登录PLSQL&#xff0c;创建DBLINK,从本地数据库&#xff0c;连接到远程&#xff14;&#xff10;的机器。 …

r语言dmy()函数转化出现na_R语言学习笔记(三):基本的统计学数字运算(平均数、众数、中位数、方差等)...

*本文是本人在学习 res method 课程中反复学不会被自己蠢到的笔记作品&#xff0c;仅供本人娱乐使用&#xff0c;如果恰好里面的内容也能帮到你&#xff0c;那可真是太好了。内容大纲&#xff1a;1.平均数计算&#xff08;对空值的排除&#xff09;2.中位数计算3.众数计算&…

智能送药小车解说(国二)

最近很多同学找我要代码 所以我在这写一下&#xff0c;我用的数字识别部分是用的Sipeed的摄像头&#xff0c;我个人觉得烧写代码确实很麻烦&#xff0c;但是他的像素确实很好&#xff0c;我也开源了代码&#xff0c;这个链接(https://download.csdn.net/download/le123didi/41…

vue 动态变量名_tool-weekly(VUE.JS+Django/DRF)

开坑-----周报填写工具开发汇总&#xff1a;1、前端开发——VUE.JS&#xff08;1&#xff09;知识点汇总&#xff1a;1&#xff09;在格式部分加scoped定义局部格式<style scoped></style>2&#xff09;在路由routes使用redirect进行重定向const routes [ { path:…