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

Rust 力扣 - 3. 无重复字符的最长子串

文章目录

  • 题目描述
  • 题解思路
  • 题解代码
  • 题目链接

题目描述

在这里插入图片描述

题解思路

我们需要记录当前子串的开始下标,一个哈希表记录字符和遍历过程中最后一次出现的索引

遍历字符串,如果在当前字符在哈希表中有记录,并且索引下标大于当前子串的开始下标,表示出现重复字符,则将开始下标右移为当前字符索引下标
将当前字符及索引刷新到哈希表中,刷新无重复子串最大长度

题解代码

use std::collections::HashMap;impl Solution {pub fn length_of_longest_substring(s: String) -> i32 {let mut win: HashMap<char, usize> = HashMap::new();let mut ans = 0;let mut start = -1;for (i, c) in s.chars().enumerate() {if let Some(idx) = win.get(&c) {if *idx as i32 > start {start = *idx as i32;}}win.insert(c, i);ans = ans.max(i as i32 - start);}ans}
}

题目链接

https://leetcode.cn/problems/longest-substring-without-repeating-characters/


http://www.mrgr.cn/news/59499.html

相关文章:

  • 【C++开篇】
  • 【嵌入式原理设计】实验一:软硬件环境搭建数字端口应用
  • Vscode + EIDE +CortexDebug 调试Stm32(记录)
  • 低空经济产业链、政策、延伸品调研笔记
  • Python爬虫教程:从入门到精通
  • 若依 spring boot +vue3 前后端分离
  • Spring Cache-基于注解的缓存
  • 以蚂蚁借呗、抖音放心借、美团借钱为例,聊聊企业如何计算期末资产收益率
  • C++和OpenGL实现3D游戏编程【连载16】——详解三维坐标转二维屏幕坐标(向量和矩阵操作实战)
  • (六)问题记录,simulink仿真出现模型碰撞后穿越
  • 【ChatGPT】如何利用ChatGPT进行复杂任务的分解
  • 100种算法【Python版】第13篇——埃拉托斯特尼素数筛法
  • 信息安全入门——网络安全威胁
  • list补充
  • apply,call,bind手写
  • 质量漫谈一
  • xss-labs靶场第十七关测试报告
  • 照片怎么转换成pdf?盘点6种图片转pdf格式有效方法,直击要点!
  • 【Spring MVC】响应结果和设置
  • linux学习笔记 常用命令记录
  • cookie 简介
  • GEE app:全球油棕,橡胶,其他树木,灌木,裸地,水的可视化界面
  • 基于STM32F103的FreeRTOS系列拓展·内存管理
  • 微信好友智能管理神器:微动RPA,重塑私域流量构建新纪元 批量自动添加好友
  • 说一说QWidget
  • 如何从iconfont中获取字体图标并应用到微信小程序中去?