当前位置: 首页 > news >正文

无重复字符的最长子串的解法

class Solution {

public int lengthOfLongestSubstring(String s) {

// 哈希集合,记录每个字符是否出现过

Set<Character> occ = new HashSet<Character>();

int n = s.length();

// 右指针,初始值为 -1,相当于我们在字符串的左边界的左侧,还没有开始移动

int rk = -1, ans = 0;

for (int i = 0; i < n; ++i) {

if (i != 0) {

// 左指针向右移动一格,移除一个字符

occ.remove(s.charAt(i - 1));

}

while (rk + 1 < n && !occ.contains(s.charAt(rk + 1))) {

// 不断地移动右指针

occ.add(s.charAt(rk + 1));

++rk;

}

// 第 i 到 rk 个字符是一个极长的无重复字符子串

ans = Math.max(ans, rk - i + 1);

}

return ans;

}

}

http://www.lryc.cn/news/18036.html

相关文章:

  • Apache Hadoop生态部署-zookeeper单机安装
  • java面试题-IO流
  • Java性能-GC工具
  • 复赛名单公布!2022隐私计算HACKATHON大赛火热进行中!
  • 微信小程序的全局弹窗以及全局实例
  • 100种思维模型之诺依曼思维模型-019
  • Python + Airtest + poco + pytest + pytest-html 实现Android App自动化测试框架
  • 一篇文章让你学会spring
  • golang入门笔记——测试
  • 【CSAPP】整数运算
  • 使用 xshell 远程连接(使用 xftp 远程传输)
  • 一个例子搞懂子网划分及子网掩码的计算
  • SPI机制源码:JDK Dubbo Spring
  • Spring Security+jwt+redis+自定义认证逻辑 权限控制
  • 打游戏什么蓝牙耳机好用?打游戏比较好的蓝牙耳机
  • 炔基点击交联试剂1704097-05-1,Alkyne-A-DSBSO crosslinker,发生相应点击反应
  • 刷题记录:牛客NC24309Overplanting (Silver)
  • Spring Boot中使用Sa-Token实现轻量级登录与鉴权
  • 《分布式技术原理与算法解析》学习笔记Day20
  • 【2023-2-23】FastDeploy 安装教程
  • rollup.js 一个简单实用的打包工具
  • 数据结构与算法之最小爬楼梯费用动态规划
  • 阿里云ACA认证如何获取?
  • 【Python入门第十六天】Python If ... Else
  • 两数之和的解法
  • 领导催我优化SQL语句,我求助了ChatGPT。这是ChatGPT给出的建议,你们觉得靠谱吗
  • ArcGIS手动分割矢量面要素从而划分为多个面部分的方式:Cut Polygons Tool
  • 【LeetCode】剑指 Offer 13. 机器人的运动范围 p92 -- Java Version
  • [oeasy]python0091_仙童公司_八叛逆_intel_8080_altair8800_牛郎星
  • crontab 执行脚本报错,手动执行脚本正常的解决方法