无重复字符的最长子串【哈希算法】-O(n)
无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
示例 2:
输入: “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。
示例 3:
输入: “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。
请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。
算法
运用hash映射,记录每种char之前出现的位置,这样用两个index的不断移动,迭代(出现冲突,就跳转到之前出现的字符的后一位),就可以在O(n)的时间内完成算法
代码
class Solution {public:int lengthOfLongestSubstring(string s) {if (s.size() <= 1) return s.size();int assii[250];for (int k = 0; k<250; ++k)assii[k] = -1;int count = 0, i = 0, j = 0;while (j < s.size()) {while (j < s.size() && assii[s[j]] < i){assii[s[j]] = j;j++;}if (count < (j - i)) count = j - i;// cout << i << " " << j << " " << assii[s[j]] << endl;if (j < s.size()) {i = assii[s[j]] + 1;assii[s[j]] = j;j++;}// cout << i << " " << j << " " << assii[s[j]] << endl;}return count;}
};
无重复字符的最长子串【哈希算法】-O(n)相关推荐
- 力扣3. 无重复字符的最长子串 two pointer算法|滑动窗口|尺取法
无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 & ...
- php无重复字符的最长子串,PHP算法之无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...
- 【leetcode】力扣刷题(3):无重复字符的最长子串(go语言)
一.问题描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 " ...
- 刻意练习:LeetCode实战 -- Task16. 无重复字符的最长子串
背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...
- 【每日一算法】无重复字符的最长子串
微信改版,加星标不迷路! 每日一算法 - 无重复字符的最长子串 思路答案 首先定义一个指针p指向该字符串的链头,然后通过p指针后的第i个字符是否和p指针后的第j个字符相同来取得最大长度.(也叫做完全遍 ...
- 汇编语言求无符号数组中出现的次数最多数_【今日最佳leecode通俗易懂】无重复字符的最长子串...
相信看了这个标题的同学,对这道题以已经非常不陌生了,就是leecode当中的第三题,之所以要单独的写一写主要对我来说,里面涉及到有一个滑动窗口, 散列表, 字符编码等知识点比较重要,也有几个小技巧,这 ...
- 大二菜鸟———无重复字符的最长子串
这是一枚大二菜鸟的成长反思博客 终于忍不住,在这六月将之的一天开始写起了博客.数据结构计算机算法杂七杂八学了一堆但是都只是浅尝,觉得还是要写博客反刍学习到的知识. 感谢大佬 @Java3y 的 ...
- 无重复最长子串python_leetCode 无重复字符的最长子串 python(Longest Substring Without Repeating Characters) python...
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. Default 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 &quo ...
- 算法-------无重复字符的最长子串(Java版)
题目: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度.示例 1:输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc& ...
- python学习3. 无重复字符的最长子串(滑动窗口)
makcooo 2019-04-19 15:47:32 271 收藏 分类专栏: python 版权 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: &quo ...
最新文章
- P6271 [湖北省队互测2014]一个人的数论(莫比乌斯反演,拉格朗日插值)
- matlab if语句多个执行举例,初学Matlab,有两个语句,if语句和switch语句,有两个例子哪位大神能帮我讲讲...
- Linux疑难杂症解决方案100篇(十一)-ubuntu crontab 详细规则及不执行时的解决方法
- 机器学习和图像资源整理
- HDU6322 Problem D. Euler Function【欧拉函数+数学规律】
- Java实例化类的几种方法
- Flutter Web 打包并发布到Tomcat服务器上
- DTCC 干货分享:Real Time DaaS - 面向TP+AP业务的数据平台架构
- winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated
- 钽电容、贴片铝电解电容、二极管等正负极判断
- mirrorlink
- 毛笔字软件测试简历,写字测试
- 数字图像处理(13): 形态学处理——图像开运算与图像闭运算
- 如何解决图片路径是中文名称的问题
- 前端----HTML/CSS 单边框
- 一只能看懂表格图片的数据助手
- 深圳ERP软件开发 轻松完成复杂数据管理
- 前端数据可视化ECharts使用指南——制作时间序列数据的可视化曲线
- 【二叉堆】实现最小堆和最大堆
- 【恶意代码分析】_第一站
热门文章
- Python3 文件读写(持续更新)
- python3命令记忆技巧_Python3学习笔记-回忆并复述是加强记忆的好方式!
- 使用Jest操作ElasticSearch 报错:No time zone indicator问题的解决方案
- 类的属性、类的方法、类的内置方法
- 使用Troll对ARM Cortex-M处理器进行系统内核调试
- 【iCore3 双核心板_ uC/OS-III】例程一:认识 uC/OS-III
- redis.conf 配置档详解
- 基于BASYS2的VHDL程序——交通灯(状态机版)
- android学习之旅_01
- 配置 Cisco ASA Static IP Addressing or DHCP for IPSec ××× Client