无重复字符的最长子串

  • 题目描述:

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

示例 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算法

利用滑动窗口法解决无重复字符的最长子串相关推荐

  1. c++ 数组的输入遇到特定字符停止输入_滑动窗口思维--挑战“无重复字符的最长子串”

    文章来源: 饭饭的Python学习之路 作者: 一粒米饭 今天要挑战的是"无重复字符的最长子串". 难度:中等 题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 ...

  2. 滑动窗口:LeetCode 3 无重复字符的最长子串

    力扣 思路:滑动窗口 窗口信息:               窗口中每个字符出现次数 用长度为128个长度的数组(ASCII码表示下标)记录字符出现次数,因为数组具有随机存储特性,所以查找的时间复杂度 ...

  3. 【LeetCode】无重复字符的最长子串【滑动窗口法】

    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...

  4. C++解决《无重复字符的最长子串》问题(滑动窗口(unordered_set),string)

    No.3<无重复字符的最长子串>:题型:滑动窗口(unordered_set),string 题目 题解思路(动态规划) 题解代码 题目 题解思路(动态规划) 申请一个unordered_ ...

  5. 学渣的刷题之旅 leetcode刷题 3. 无重复字符的最长子串(暴力法、滑动窗口)

    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...

  6. python学习3. 无重复字符的最长子串(滑动窗口)

    makcooo 2019-04-19 15:47:32  271  收藏 分类专栏: python 版权 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: &quo ...

  7. LeetCode 3. 无重复字符的最长子串 (滑动窗口哈希表)

    3. 无重复字符的最长子串 题意: 找子串 子串中无重复字符 要求子串长度最长 解法1(暴力法) 思路: 建立一个长度不断变小的滑动窗口 用一个指针指针扫描窗口内的每个元素: 如果除去指针指向的那个元 ...

  8. python最长连续子串_LeetCode 03无重复字符的最长子串(滑动窗口)

    关注.在看,回复进群打卡 题目描述 题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为 ...

  9. LeetCode精讲 03无重复字符的最长子串(滑动窗口)

    题目描述 原创作者:bigsai,维护不易,如有收获,还请点赞.收藏支持! 题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcb ...

最新文章

  1. 【转】Tomcat7启动的总过程 (有时间自己写下tomcat8的)
  2. 判定重大风险有哪几种_化工生产安全管理信息化平台可以解决哪些重大问题
  3. 获取CPU序列号和MAC地址
  4. centos7安装mysql的rpm_Centos7 安装MySQL(rpm方式)
  5. 802.1X基本配置
  6. 【BZOJ1095】捉迷藏,动态点分治
  7. Swagger 属性名 FastJson支持,@ApiModelProperty无法序列化
  8. 二叉树 的建立及遍历 过程
  9. 安全加固脚本及解析等保2.0(仅供参考)
  10. 在线SVG在线编辑器
  11. Qt 自定义QWidget中区分鼠标单击和双击
  12. SEO和SEM的区别是什么
  13. EINT DINT ERTM DRTM EALLOW EDIS ESTOP0的理解
  14. 英语四级和计算机一级算多少学分,大学英语四级多少分算过
  15. DirextX 11游戏开发(1)
  16. 【数据库自习室#003】Mysql数据库函数
  17. Android SDK Manager
  18. Encountered an improper argument.问题解决办法
  19. go-ethereum相关
  20. 还不知道东数西算是什么?最全面东数西算八大枢纽解读

热门文章

  1. tmux命令-快速开始
  2. 应广单片机 PMS150G 161 171 基础例子【sleep】
  3. gocron mysql_gocron
  4. 易车及网购车平台的发展历程
  5. Win7 64位 下SlikSVN 的安装配置
  6. 大唐杯 5G工程实践 (35:00-45:00)任务三 任务五(15%)
  7. 中国石油大学计算机考研资料汇总
  8. 谷歌浏览器手机调试模式时显示断网
  9. 第2次作业:软件案例分析之王者荣耀
  10. Apache-mina学习笔记,非常全都资料,附带大量实例