最长不含重复字符的字符串
题目链接
最长不含重复字符的字符串
题目描述
注意
- 子字符串是连续的
- 最终返回的是最长的子字符串的长度
解答思路
- 采用双指针+哈希表查找,其中右指针遍历整个字符串,左指针只有在左右指针之间出现了相同字符时才发生改变
代码
class Solution {public int lengthOfLongestSubstring(String s) {// 储存字符串中的字符及其位置信息Map<Character, Integer> dic = new HashMap<>();int res = 0;int i = -1;// 右指针遍历整个字符串for(int j = 0; j < s.length(); j++) {if(dic.containsKey(s.charAt(j))) {// 更新左指针 ii = Math.max(i, dic.get(s.charAt(j))); }// 更新哈希表记录dic.put(s.charAt(j), j); // 更新结果res = Math.max(res, j - i); }return res;}
}
关键点
- 用一个map存储所有的字符及其最晚出现的位置
- 当右指针指向的字符在map中存在,且其重复字符的位置在此时左指针与右指针之间,则要改变左指针的位置,让其指向其重复字符的位置(实际指向的是该重复位置的下一位,方便计算),以保证左右指针之间的字符不重复
最长不含重复字符的字符串相关推荐
- 剑指offer -- 最长不含重复字符的字符串
题目:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度.假设字符串中只包含'a'-'z'的字符.如在"arabcacfr"中,最长的不含重复字符的子字符 ...
- 字符串左侧补0_(48)C++面试之最长不含重复字符的子字符串(动态规划)
// 面试题48:最长不含重复字符的子字符串 // 题目:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子 // 字符串的长度.假设字符串中只包含从'a'到'z'的字符. #inclu ...
- 【LeetCode】剑指 Offer 48. 最长不含重复字符的子字符串
[LeetCode]剑指 Offer 48. 最长不含重复字符的子字符串 文章目录 [LeetCode]剑指 Offer 48. 最长不含重复字符的子字符串 package offer;import ...
- 求最长不含重复字符的子字符串——C++
声明:本文原题主要来自力扣,记录此博客主要是为自己学习总结,不做任何商业等活动! 一.原题描述 剑指 Offer 48. 最长不含重复字符的子字符串 请从字符串中找出一个最长的不包含重复字符的子字符串 ...
- 最长不含重复字符的子字符串(C++)
最长不含重复字符的子字符串 描述 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度. 数据范围:s.length≤40000 示例1 输入: "abcabcb ...
- 面试题48:最长不含重复字符的子字符串
目录 1.动态规划 2.滑动数组 1.动态规划 先来分析一下吧...这题我们很容易想到,假设f(i)表示以下标i结尾的s[i]中的最长不含重复字符的子字符串,那么f(i)=f(i-1)+1是不是很容易 ...
- 【剑指Offer打卡】48. 最长不含重复字符的子字符串
剑指 Offer 48.最长不含重复字符的子字符串 JavaScript剑指Offer题解
- 【字符串】最长不含重复字符的子字符串
1. 题目描述 题目链接:最长不含重复字符的子字符串 2. 题目分析 我们可以看到,题目要求我们求在一个区间内不含有重复的字符串,这种区间,我们第一时间应该想到滑动窗口. 这个题目的巧妙在于:我们利用 ...
- 最长不含重复字符的子串
最长不含重复字符的子串 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符 ...
最新文章
- rethat linux安装nginx,RedHat和CentOS下Nginx安装
- iPhone nano 被取消是因为乔布斯看到了风向?
- 最好用的微型计算机,《微型计算机原理及应用》试题及答案 好
- sqlserver int转varchar_SQL server 常用数据类型讲解
- 射击的乐趣:WIN32诠释打飞机游戏
- 时间约束的实体解析中记录对排序研究
- 共青城市大力推进国家智慧城市试点建设
- eclipse打包成jar_SpringBoot系列(三)- 用 jar的方式运行springboot项目
- 【数学建模】基于matlab银行多机排队论模型【含Matlab源码 1096期】
- 8uftp服务器用户名密码,8uftp怎么用,8uftp怎么用,详细介绍8uftp的用法
- ROBOGUIDE软件:FANUC机器人弧焊焊接起始点接触寻位虚拟仿真
- uniapp 打开第三方APP
- ERP项目实施技术要点分析
- 快慢缓急总相宜|ONES 人物
- 计算机辅助的临床会谈,天智航参加第十九届国际计算机辅助骨科学术大会
- 100道前端近年面试题(内含详细答案)
- 强化学习之Q学习与SARSA
- J-Link V9 复活
- python一维数组和二维数组,Python numpy实现二维数组和一维数组拼接的方法
- “花生壳”实现内网穿透搭建个人网站
热门文章
- VR产生眩晕感原因之一——景深
- 卸载Visual Studio 2015并安装Visual Studio 2019
- Premiere Pro之字幕添加(三)
- 棋盘算法c语言程序,C语言经典算法 - 骑士走棋盘
- 数智化转型中的零售餐饮行业
- AirSim无人机仿真(Ubuntu18.04)
- win10运行calc计算器报错 win10无法打开这个应用。请与你的系统管理员联系,以了解有关修复或重新安装该应用的信息。
- laragon用php连接数据库,Laragon - PHP 集成环境 - 技术资源库 - by 安拓网络技术资源库 - by 安拓网络...
- 鸿蒙系统问世(开源!!!)
- iOS动画:粒子发射器(20)