leetcode题解#3:无重复字符的最长子串
leetcode题解:无重复字符的最长子串
题目
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: s = "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
思路
构造子串的首尾指针。
判断子串是否重复的方法:利用string的
find_first_of方法,传入子串的最后一个字符,当返回的下标非子串的长度,即end-begin,则表明已经重复。若重复:则判断长度,比当前记录的最大值大,则覆盖,并重置首尾指针。
不重复:则尾指针++,继续判断下一个字符。
循环出口判断条件尾末尾指针大于原字符串长度。
其中字符串的赋值利用了string的assign方法,注意传入的第三个参数是子串长度,而不是末尾下标。
代码
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int max=0,begin=0,end=1; // 初始化参数
string temp; // 存储子串
temp.assign(s,begin,end-begin+1); // assign(string,begin,count); 初始化
while(end <= s.length()){ // 出口,末尾指针超出范围
if(temp.find_first_of(s[end]) != (end-begin) ){ // 重复判定
if((end-begin) > max) // 判断长度
max = (end-begin);
begin = begin +1; // 重新开始
end = begin +1;
}else{
end++; // 增加长度
}
temp.assign(s,begin,end-begin+1); // 继续赋值
}
return max;
}
};
leetcode题解#3:无重复字符的最长子串的更多相关文章
- LeetCode Golang 3. 无重复字符的最长子串
3. 无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串 ...
- python刷LeetCode:3.无重复字符的最长子串
难度等级:中等 题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 ...
- 【LeetCode】3. 无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...
- LeetCode: 3 无重复字符的最长子串 (Java)
3. 无重复字符的最长子串 https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 最初始的解 ...
- LeetCode刷题--无重复字符的最长子串(中等)
题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 " ...
- LeetCode,3. 无重复字符的最长子串
看了各位大神的,真是难堪,尤其是各种c++动不动就击败99%...我用python,换了三次算法,改了十几次bug,才击败5%....贴出来纪念下吧. 题目如下: 给定一个字符串,请你找出其中不含有重 ...
- leetcode题目3.无重复字符的最长子串(中等)
题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "a ...
- 【LeetCode 3】无重复字符的最长子串
描述 [题解] 尺取法 对于[l..r]这段 如果新加进来的s[r]有和之前的重复. 那么就不用重新开始了. 直接递增左区间. 让这段没有重复数字了再说. *****然后再把s[r]加进去. [代码] ...
- 【LeetCode题解】3_无重复字符的最长子串(Longest-Substring-Without-Repeating-Characters)
目录 描述 解法一:暴力枚举法(Time Limit Exceeded) 思路 Java 实现 Python 实现 复杂度分析 解法二:滑动窗口(双指针) 思路 Java 实现 Python 实现 复 ...
随机推荐
- CentOS 下 MySQL 服务搭建
1. 卸载旧 MySQL 查看 rpm 包 rpm-qa | grep mysql 如果存在,使用如下命令卸载 rpm -e 查找是否存在mysql 相关目录 find / -name mysql 卸 ...
- C#二次开发BIMFACE系列60 File Management文件管理服务及应用场景
系列目录 [已更新最新开发文章,点击查看详细] 在我的博客<C#二次开发BIMFACE系列>教程中详细介绍了如何注册BIMFACE.测试.封装服务器端接口并提供了丰富的Demo.视 ...
- KTL 一个支持C++14编辑公式的K线技术工具平台 - 第五版,支持sqlite3,全新sqlite3zz语法超简单使用sqlite3; 添加方差等统计函数。
K,K线,Candle蜡烛图. T,技术分析,工具平台 L,公式Language语言使用c++14,Lite小巧简易. 项目仓库:https://github.com/bbqz007/KTL 国内仓库 ...
- Android 12(S) 图像显示系统 - SurfaceFlinger之VSync-上篇(十六)
必读: Android 12(S) 图像显示系统 - 开篇 一.前言 为了提高Android系统的UI交互速度和操作的流畅度,在Android 4.1中,引入了Project Butter,即&quo ...
- Navicat导出结果显示科学计数法(PostgreSQL)
原因:在EXCEL录入数超过11位,就会变成科学记数法 解决方案: 在postgresql需要导出的列中加入制表符 示例: SELECT 6280920221390000000061:: TEXT | ...
- 解决PLSQL developer 乱码问题
今天打开 PLSQL developer 登录数据库后,查看数据的时候,发现表里面的中文数据全部变成了 ??? 这样的东西, 打开表看表的 中文描述信息 , 一样 显示问号. 什么鬼啊? 第一次 ...
- 详解Docker中Image、Container与 Volume 的迁移
开源Linux 长按二维码加关注~ 上一篇:Linux Used内存到底哪里去了? 已经部署的容器化服务,也不是不需要维护的.而且,由于生产环境往往有这样那样的严格要求,往往需要些非常规操作.Imag ...
- ASCII&Base64
ASCII https://zh.wikipedia.org/wiki/ASCII American Standard Code for Information Interchange,美国信息交换标 ...
- Blazor和Vue对比学习(进阶2.1.1):生命周期,基本理解和使用
一.基本理解 首次接触"生命周期"这个名词,是比较晦涩的,Vue中又有生命周期钩子,而Blazor则是虚方法重写,容易蒙.所以,我尝试从初学者的角度来阐述一下. 1.我们在基础部分 ...
- 安装Suberversion[SVN]到CentOS(YUM)
运行环境 系统版本:CentOS Linux release 7.3.1611 (Core) 软件版本:Suberversion-1.7.14 硬件要求:无 安装过程 1.安装YUM-EPEL源 Su ...