python字符串中最长的连续升序子串_[不定时一题]LeetCode无重复字符的最长子串...

博客介绍了LeetCode第三天的题目,探讨了字符串的子串和子序列概念,并讲解如何找到Python字符串中最长的连续升序子串。文章通过两种方法解释了解决方案,并附带图解。
摘要由CSDN通过智能技术生成

27c1a4201926fc27b3bfd1688302acf1.gif

826b32ee48a269e5ce368bc805cd6e42.png

LeetCode第三天

好不甘心,夏天就这么过去了fae758d2dfd7b141831e2d9ec0ac68ff.png,但是LeetCode之旅才刚刚拉开序幕。

题目

今天带来的是第三题:

fa277cc61c7261932415f440b682c2f3.png

一如既往通过题目我们可以了解一些信息`子串`和`子序列`[1],那么什么是子串,什么是子序列呢?

什么是子串

串中任意个连续的字符组成的子序列称为该串的子串

对于一个字符串变量,例如"adereegfbw",它的子串就是像"ader"这样可以从中找到的连续的字符串。字符串"adereegfbw"本身也属于它本身最长的子串。

ab的子串:a、b、ab和一个空子串共4个即(2+1+1)个,abc的子串:a、 b、 c、 ab、 bc 、abc和一个空子串 共(3+2+1+1)个,所以若字符串的长度为n,则子串的个数就是[n*(n+1)/2]+1个,"software"中非空子串的个数就是8+7+....+1=36个。

什么是子序列

子数列,又称子序列,在数学中,某个序列的子序列是从最初序列通过

去除某些元素但不破坏余下元素的相对位置(在前或在后)而形成的新序列。

“AC”是“ABCDEFG”的子序列,而不是子串。

言归正传题目中还有两个关键字不含有重复字符最长

这里采用数组的方法,定义一个空队列,判断是否存在字符,如果重复则截取数组,如果不存在往定义好的队列里添加。

  • 第一种写法:这里采用Math.max()的方法获取最大值,但是要考虑一种边界值就是如果s=""这种情况。还有一个小细节:s=" "则s.length=1
850fac8a49e4102b3180d38ec2279537.png
  • 第二种写法:直接定义maxlength为03f87f17f61e87a1d807b1c40ff4c0436.png

图解

260933e0774c58fbec54897603d9094c.png

结果

98dfe63da859426442a7f1aa6a697788.png

・・・下期再见・・・

参考资料

[1]

子串和子序列的区别: https://www.cnblogs.com/wkqweizhi/p/12248401.html

7f5609a74eb2f4e69b61c2284c698005.png

点击下面?[分享]、[赞]、[在看]是对小编最大的支持?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值