利用滑动窗口法解决无重复字符的最长子串
无重复字符的最长子串
- 题目描述:
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:
输入: "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
示例 3:
输入: "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
- 解题思路:
采用滑动窗口法搜索最长子串
只需要考虑左边界和右边界的确立问题,以及如何移动到的问题
对此
设立左指针a和右指针b
b指针向右侧伸缩{
对每个A[b]判断是否在之前的数组出现过;
如果出现,指针a指向出现过的位置的下一个位置;更新右指针和最大长度;
}
- 具体算法流程如图所示
- 具体代码如下
class Solution {
public:int lengthOfLongestSubstring(string s) {//滑动窗口int start=0,end=0;int len=0,res=0;while(end<s.size()){char tmp=s[end];//先将end暂存 方便与滑窗里比较for(int i=start;i<end;i++){if(tmp==s[i])//存在相同的{start=i+1;//左边界,跳过相同数字,移动至相同数字的下一位置处len=end-start;break;}}end++;//右边界搜索len++;res=max(res,len);//找到长度最长的子串}return res;}
};
参考来源:leetcode算法
利用滑动窗口法解决无重复字符的最长子串相关推荐
- c++ 数组的输入遇到特定字符停止输入_滑动窗口思维--挑战“无重复字符的最长子串”
文章来源: 饭饭的Python学习之路 作者: 一粒米饭 今天要挑战的是"无重复字符的最长子串". 难度:中等 题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 ...
- 滑动窗口:LeetCode 3 无重复字符的最长子串
力扣 思路:滑动窗口 窗口信息: 窗口中每个字符出现次数 用长度为128个长度的数组(ASCII码表示下标)记录字符出现次数,因为数组具有随机存储特性,所以查找的时间复杂度 ...
- 【LeetCode】无重复字符的最长子串【滑动窗口法】
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...
- C++解决《无重复字符的最长子串》问题(滑动窗口(unordered_set),string)
No.3<无重复字符的最长子串>:题型:滑动窗口(unordered_set),string 题目 题解思路(动态规划) 题解代码 题目 题解思路(动态规划) 申请一个unordered_ ...
- 学渣的刷题之旅 leetcode刷题 3. 无重复字符的最长子串(暴力法、滑动窗口)
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...
- python学习3. 无重复字符的最长子串(滑动窗口)
makcooo 2019-04-19 15:47:32 271 收藏 分类专栏: python 版权 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: &quo ...
- LeetCode 3. 无重复字符的最长子串 (滑动窗口哈希表)
3. 无重复字符的最长子串 题意: 找子串 子串中无重复字符 要求子串长度最长 解法1(暴力法) 思路: 建立一个长度不断变小的滑动窗口 用一个指针指针扫描窗口内的每个元素: 如果除去指针指向的那个元 ...
- python最长连续子串_LeetCode 03无重复字符的最长子串(滑动窗口)
关注.在看,回复进群打卡 题目描述 题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为 ...
- LeetCode精讲 03无重复字符的最长子串(滑动窗口)
题目描述 原创作者:bigsai,维护不易,如有收获,还请点赞.收藏支持! 题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcb ...
最新文章
- 【转】Tomcat7启动的总过程 (有时间自己写下tomcat8的)
- 判定重大风险有哪几种_化工生产安全管理信息化平台可以解决哪些重大问题
- 获取CPU序列号和MAC地址
- centos7安装mysql的rpm_Centos7 安装MySQL(rpm方式)
- 802.1X基本配置
- 【BZOJ1095】捉迷藏,动态点分治
- Swagger 属性名 FastJson支持,@ApiModelProperty无法序列化
- 二叉树 的建立及遍历 过程
- 安全加固脚本及解析等保2.0(仅供参考)
- 在线SVG在线编辑器
- Qt 自定义QWidget中区分鼠标单击和双击
- SEO和SEM的区别是什么
- EINT DINT ERTM DRTM EALLOW EDIS ESTOP0的理解
- 英语四级和计算机一级算多少学分,大学英语四级多少分算过
- DirextX 11游戏开发(1)
- 【数据库自习室#003】Mysql数据库函数
- Android SDK Manager
- Encountered an improper argument.问题解决办法
- go-ethereum相关
- 还不知道东数西算是什么?最全面东数西算八大枢纽解读