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

面试经典题---3.无重复字符的最长子串

3.无重复字符的最长子串

我的解法:

滑动窗口:

  • 维护一个[left, right)的滑动窗口,其中[left, right - 1]都是不重复子串;
  • 每轮while循环都计算一个滑动窗口的无重复子串长度len,每轮也让right后移一步;
    • 内部的for循环用于判断[left, right - 1]部分的元素与元素s[right]是否相同,一旦发现s[right]与其中某个元素相同,则窗口左端会收缩至right + 1位置,更新窗口大小len;
    • 当窗口[left, right - 1]部分的元素与元素s[right]都不相同时,将元素s[right]加入无重复子串,滑动窗口右移一步,窗口大小len加1
class Solution {
public:int lengthOfLongestSubstring(string s) {int left = 0, right = 0;int len = 0, res = 0;while(right < s.size()){char str = s[right];for(int index = left; index < right; index++){if(s[index] == str){left = right + 1;len = right - left;break;}}right++;len++;res = max(res,len);}return res;}
};

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

相关文章:

  • 使用Robot Framework实现多平台自动化测试
  • Java基础进阶02-xml
  • 《开始使用PyQT》 第01章 PyQT入门 03 用户界面介绍
  • HTML-列表
  • OceanBase创建租户
  • Java中Integer(127)==Integer(127)为True,Integer(128)==Integer(128)却为False,这是为什么?
  • 【Unity】粒子贴图异常白边问题
  • bxCAN接收处理
  • 前端面试题-(浏览器内核,CSS选择器优先级,盒子模型,CSS硬件加速,CSS扩展)
  • WEB前端标签的使用
  • 739. 每日温度
  • stm32F103C8T6简介及标准库和HAL库的区别
  • 操作系统(3)---操作系统引导
  • Vue3+Ts:实现paypal按钮
  • .[Decipher@mailfence.com].faust 勒索病毒数据怎么处理|数据解密恢复
  • 【UE Niagara】制作星光飘落效果
  • SLAM初学
  • 腾讯云轻量应用服务器Docker如何一键搭建属于自己的幻兽帕鲁服务器?
  • win10+elasticsearch8.12 安装教程
  • 经典面试题-死锁
  • mysql面试题合集-基础
  • 点灯大师(STM32)
  • @EnableEurekaServer
  • Java中的接口
  • Linux笔记之bash脚本中的-e、和
  • mapstruct自定义转换,怎样将String转化为List
  • torch.matmul和torch.bmm区别
  • k8s学习(RKE+k8s+rancher2.x)成长系列之概念介绍(一)
  • PHP - Yii2 异步队列
  • leetcode560和为k的子数组