题目链接

最长不含重复字符的字符串

题目描述

注意

  • 子字符串是连续的
  • 最终返回的是最长的子字符串的长度

解答思路

  • 采用双指针+哈希表查找,其中右指针遍历整个字符串,左指针只有在左右指针之间出现了相同字符时才发生改变

代码

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中存在,且其重复字符的位置在此时左指针与右指针之间,则要改变左指针的位置,让其指向其重复字符的位置(实际指向的是该重复位置的下一位,方便计算),以保证左右指针之间的字符不重复

最长不含重复字符的字符串相关推荐

  1. 剑指offer -- 最长不含重复字符的字符串

    题目:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度.假设字符串中只包含'a'-'z'的字符.如在"arabcacfr"中,最长的不含重复字符的子字符 ...

  2. 字符串左侧补0_(48)C++面试之最长不含重复字符的子字符串(动态规划)

    // 面试题48:最长不含重复字符的子字符串 // 题目:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子 // 字符串的长度.假设字符串中只包含从'a'到'z'的字符. #inclu ...

  3. 【LeetCode】剑指 Offer 48. 最长不含重复字符的子字符串

    [LeetCode]剑指 Offer 48. 最长不含重复字符的子字符串 文章目录 [LeetCode]剑指 Offer 48. 最长不含重复字符的子字符串 package offer;import ...

  4. 求最长不含重复字符的子字符串——C++

    声明:本文原题主要来自力扣,记录此博客主要是为自己学习总结,不做任何商业等活动! 一.原题描述 剑指 Offer 48. 最长不含重复字符的子字符串 请从字符串中找出一个最长的不包含重复字符的子字符串 ...

  5. 最长不含重复字符的子字符串(C++)

    最长不含重复字符的子字符串 描述   请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度. 数据范围:s.length≤40000 示例1 输入: "abcabcb ...

  6. 面试题48:最长不含重复字符的子字符串

    目录 1.动态规划 2.滑动数组 1.动态规划 先来分析一下吧...这题我们很容易想到,假设f(i)表示以下标i结尾的s[i]中的最长不含重复字符的子字符串,那么f(i)=f(i-1)+1是不是很容易 ...

  7. 【剑指Offer打卡】48. 最长不含重复字符的子字符串

    剑指 Offer 48.最长不含重复字符的子字符串 JavaScript剑指Offer题解

  8. 【字符串】最长不含重复字符的子字符串

    1. 题目描述 题目链接:最长不含重复字符的子字符串 2. 题目分析 我们可以看到,题目要求我们求在一个区间内不含有重复的字符串,这种区间,我们第一时间应该想到滑动窗口. 这个题目的巧妙在于:我们利用 ...

  9. 最长不含重复字符的子串

    最长不含重复字符的子串 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符 ...

最新文章

  1. rethat linux安装nginx,RedHat和CentOS下Nginx安装
  2. iPhone nano 被取消是因为乔布斯看到了风向?
  3. 最好用的微型计算机,《微型计算机原理及应用》试题及答案 好
  4. sqlserver int转varchar_SQL server 常用数据类型讲解
  5. 射击的乐趣:WIN32诠释打飞机游戏
  6. 时间约束的实体解析中记录对排序研究
  7. 共青城市大力推进国家智慧城市试点建设
  8. eclipse打包成jar_SpringBoot系列(三)- 用 jar的方式运行springboot项目
  9. 【数学建模】基于matlab银行多机排队论模型【含Matlab源码 1096期】
  10. 8uftp服务器用户名密码,8uftp怎么用,8uftp怎么用,详细介绍8uftp的用法
  11. ROBOGUIDE软件:FANUC机器人弧焊焊接起始点接触寻位虚拟仿真
  12. uniapp 打开第三方APP
  13. ERP项目实施技术要点分析
  14. 快慢缓急总相宜|ONES 人物
  15. 计算机辅助的临床会谈,天智航参加第十九届国际计算机辅助骨科学术大会
  16. 100道前端近年面试题(内含详细答案)
  17. 强化学习之Q学习与SARSA
  18. J-Link V9 复活
  19. python一维数组和二维数组,Python numpy实现二维数组和一维数组拼接的方法
  20. “花生壳”实现内网穿透搭建个人网站

热门文章

  1. VR产生眩晕感原因之一——景深
  2. 卸载Visual Studio 2015并安装Visual Studio 2019
  3. Premiere Pro之字幕添加(三)
  4. 棋盘算法c语言程序,C语言经典算法 - 骑士走棋盘
  5. 数智化转型中的零售餐饮行业
  6. AirSim无人机仿真(Ubuntu18.04)
  7. win10运行calc计算器报错 win10无法打开这个应用。请与你的系统管理员联系,以了解有关修复或重新安装该应用的信息。
  8. laragon用php连接数据库,Laragon - PHP 集成环境 - 技术资源库 - by 安拓网络技术资源库 - by 安拓网络...
  9. 鸿蒙系统问世(开源!!!)
  10. iOS动画:粒子发射器(20)