前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[不定时一题]LeetCode无重复字符的最长子串

[不定时一题]LeetCode无重复字符的最长子串

作者头像
小丑同学
发布2020-09-21 15:44:53
6480
发布2020-09-21 15:44:53
举报
文章被收录于专栏:小丑的小屋

LeetCode第三天

好不甘心,夏天就这么过去了

,但是LeetCode之旅才刚刚拉开序幕。

题目

今天带来的是第三题:

一如既往通过题目我们可以了解一些信息`子串`和`子序列`[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
  • 第二种写法:直接定义maxlength为0

图解

结果

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小丑的小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目
  • 什么是子串
  • 什么是子序列
  • 图解
  • 结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档