力扣3:無重復字符的最長子串

力扣3:無重復字符的最長子串

  • 題目
  • 思路
  • 代碼

題目

給定一個字符串 s ,請你找出其中不含有重復字符的 最長 子串 的長度。

思路

這道題的思路其實是很簡單的,最后我們需要得到子串的長度所以我們可以定義兩個變量即子串的左邊界和右邊界這樣有了左右邊界就等于有了子串。然后我們從子串的起始位置開始移動右邊界,每次移動前都要判斷當前子串中是否有重復的字符如果有我們必須移動左邊界直到移動到這個重復的字符后。
思路就是這樣個思路,那么問題主要就是如何進行判斷子串里是否有重復字符。其實也很簡單我們使用哈希表即可。

代碼

class Solution {
public:int lengthOfLongestSubstring(string s) {int n = s.size();if (n <= 1) {return n;}int res = 0;// 子串的左邊界int left = 0;// 子串的有邊界int right = 0;// 使用哈希表來檢查是否有重復的字符unordered_set<char> us;for (right = 0; right < n; right++) {char ch = s[right];// 如果在哈希表里有了這個字符while (left <= right && us.count(ch)) {// 就從哈希表中刪除左邊界的字符// 并且++左邊界直到哈希表中不存在ch字符us.erase(s[left]);left++;}us.insert(ch);res = max(res, right - left + 1);}return res;}
};

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/93529.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/93529.shtml
英文地址,請注明出處:http://en.pswp.cn/web/93529.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Git登錄配置的詳細方法

Git登錄綁定主要涉及配置用戶信息和設置身份驗證。以下是詳細的配置方法&#xff1a; 1. 配置基本用戶信息 # 全局配置用戶名和郵箱 git config --global user.name "你的用戶名" git config --global user.email "你的郵箱example.com"# 或者為單個倉庫配…

測試工程師的AI轉型指南:從工具使用到測試策略重構

測試工程師的AI轉型指南&#xff1a;從工具使用到測試策略重構 測試工程師正站在職業轉型的十字路口。當GitHub Copilot能自動生成測試用例&#xff0c;AI性能工具能預測系統瓶頸&#xff0c;傳統“手動執行用例、人工分析結果”的工作模式正被顛覆。某互聯網公司測試團隊的調研…

3D打印——給開發板做外殼

3D打印——給開發板做外殼前言一、建立開發板3D模型根據開發板尺寸繪制草圖繪制PCB草圖&#xff08;手動&#xff09;繪制PCB草圖&#xff08;導入&#xff09;拉伸PCB板下載零件3D模型裝配零件二、建立外殼3D模型盒子蓋子&#xff08;卡扣&#xff09;最終效果三、問題記錄前言…

Spring AI架構分析

Spring AISpring AI開發框架提供對接應用與AI模型的集成開發能力&#xff0c;讓開發者更加容易地開發智能體以及其他生成式人工智能的應用&#xff1a;模型&#xff08;Model&#xff09;AI模型是算法與數據的集合&#xff0c;用于處理信息以及生成信息&#xff0c;主要AI模型的…

Javar如何用RabbitMQ訂單超時處理

RabbitMQ 訂單超時處理方案 使用 RabbitMQ 的 TTL 死信隊列&#xff08;DLX&#xff09; RabbitMQ 的 TTL&#xff08;Time-To-Live&#xff09; 和 死信隊列&#xff08;Dead Letter Exchange&#xff09; 是處理訂單超時的常見方案。核心思路是設置消息的過期時間&#xff0…

記錄一下 StarRocks 點查的 Profile Metrics

背景 Starrocks 3.5 補充兩個點查的 profile 一個是沒有開啟點查的情況&#xff0c;也就是SET enable_short_circuit false; 一個是開啟點查的情況&#xff0c;也就是SET enable_short_circuit true; 其中建表語句如下&#xff1a; CREATE TABLE ac_account (id bigint(20) …

react echarts圖表監聽窗口變化window.addEventListener(‘resize’)與ResizeObserver()

發生問題場景 系統頁面使用tabs標簽頁,當有多個組件&#xff0c;有使用eCharts圖表的頁面時&#xff0c;其中的一個頁面或其他頁面使用了F11的頁面全屏&#xff0c;關閉全屏后圖表會收縮起來(注:固定eCharts的width、height 的參數值是無影響&#xff0c;按照固定參數大小展示)…

Leaflet賦能:WebGIS視角下的省域區縣天氣可視化實戰攻略

目錄 前言 一、空間數據基礎 1、省域空間檢索 2、區縣天氣信息檢索 二、天氣數據簡介 1、省域天氣數據獲取 2、區縣名稱不一致 三、SpringBoot后臺實現 1、Java后臺天氣數據查詢 2、控制層實現 四、WebGIS前端實現 1、氣溫顏色及圖例初始化 2、氣溫數據展示實現 五…

《SeeClick: Harnessing GUI Grounding for Advanced Visual GUI Agents》論文精讀筆記

前言 論文鏈接&#xff1a;[2401.10935] SeeClick: Harnessing GUI Grounding for Advanced Visual GUI Agents SeeClick是一種只依賴截圖就能執行自動化任務的方法。 在這篇論文中&#xff0c;還提出了ScreenSpot數據集&#xff0c;涵蓋移動端、桌面和Web環境的真實benchma…

校園綜合數據分析可視化大屏 -Vue純前端靜態頁面項目

最近一直在學習用vue來制作 一些 大屏報表的網站&#xff0c;今天就來分享一個我最近做的一個 關于校園綜合數據分析可視化大屏的網站。 使用的技術是vue2 element-uiVue2&#xff1a;Element-UI&#xff1a;ECharts&#xff1a;Node版本 16.20 安裝依賴&#xff1a;n…

【adb端口5555】烽火hg680-gy_烽火hg680-gc安卓9線刷燒錄包 解決用一段時間就提示升級的問題

烽火hg680-gy_烽火hg680-gc安卓9線刷燒錄包 解決提示升級的問題本固件可用于那些adb打不開或無法用U盤成功刷機的盒子&#xff1b;本固件需要準備一個TTL線哦&#xff1b;CH340型號的 可以網上自購&#xff1b;TTL鏈接點 參考下圖&#xff1a;其他也沒有特別需要說明了的&#…

大模型應用發展與Agent前沿技術趨勢(中)

大模型與Agent結合的深度技術架構 分層式Agent架構設計 隨著大模型規模的不斷增長&#xff0c;傳統的Agent實現方式已難以滿足高性能、高可擴展性的需求。現代大模型Agent系統通常采用分層式架構設計&#xff0c;將復雜的決策過程分解為多個功能模塊&#xff0c;每個模塊負責特…

Python可視化工具-Bokeh:動態顯示數據

目錄 概述 1 認識Bokeh 1.1 Bokeh介紹 1.2 安裝Bokeh 1.3 范例介紹 2 Bokeh的應用 2.1 Bokeh應用的框架結構 2.2 實時性數據核心原理 3 具體案例 3.1 代碼實現 3.2 部署和運行 概述 Bokeh是一個用于創建交互式可視化的Python庫&#xff0c;特別適合在Web瀏覽器中展示…

Elasticsearch「kNN Retriever」把向量檢索裝進一條 \_search 管線

1. kNN retriever 是什么&#xff1f; kNN retriever 是 Retriever 框架中的首階段召回器&#xff0c;負責對一個向量字段做近鄰搜索&#xff0c;返回 Top-K 文檔。相比早期的 knn 頂級語法&#xff0c;Retriever 讓我們能在一個請求里組合多種策略&#xff08;如 RRF/Rescorer…

第四天~在CANFD或CAN2.0的ARXML文件中實現Multiplexor多路復用信號實戰

【ARXML專題】-解鎖CAN信號超能力:Multiplexor多路復用技術深度解析 "當你的CAN幀需要傳輸100種信號卻只有64字節時,就像試圖用行李箱裝下一整個衣櫥——Multiplexor就是你的真空壓縮袋" 信號擁堵時代的救世主 現代豪華汽車中,單個ECU可能需處理500+信號,而傳統…

JavaScript 基礎入門:從零開始學 JS

一、JavaScript 簡介JavaScript&#xff08;簡稱 JS&#xff09;是一種高級的、解釋型的編程語言&#xff0c;由 Netscape 公司的 Brendan Eich 在 1995 年開發&#xff0c;最初命名為 LiveScript&#xff0c;后因與 Java 的合作關系而改名為 JavaScript。作為 Web 開發的三大核…

pytest中使用loguru的問題及解決

引語 上一篇文章,我們向大家推薦了python語言的一個第三方日志庫loguru,使用非常簡單且功能完備。 但對于我們做自動化測試,經常使用 pytest 框架的小伙伴來說,卻有點小問題。就是 Pytest 內建的日志捕獲機制是在標準庫 logging 的基礎上進行優化過的。 這樣我們在使用 p…

Qt異步編程:QFuture與QPromise深度解析

在現代GUI應用中&#xff0c;異步操作是保證界面流暢性的關鍵。本文將深入探討Qt框架中強大的異步工具——QFuture和QPromise&#xff0c;揭示它們如何簡化多線程編程并提升應用性能。 為什么需要QFuture/QPromise&#xff1f; 在Qt開發中&#xff0c;我們經常面臨這樣的挑戰&a…

基于Python的電影評論數據分析系統 Python+Django+Vue.js

本文項目編號 25008 &#xff0c;文末自助獲取源碼 \color{red}{25008&#xff0c;文末自助獲取源碼} 25008&#xff0c;文末自助獲取源碼 目錄 一、系統介紹1.1 用戶功能1.2 管理員功能 二、系統錄屏三、啟動教程四、功能截圖五、文案資料5.1 選題背景5.2 國內外研究現狀 六、…

數據結構:在二叉搜索樹中插入元素(Insert in a BST)

目錄 插入的本質是什么&#xff1f; 如何尋找“合法”的位置&#xff1f;—— 模擬查找過程 遞歸插入&#xff08;Recursive Insert&#xff09;—— 優雅的實現 代碼逐步完善 總結 上一節我們從第一性原理搞清楚了二叉搜索樹&#xff08;BST&#xff09;是什么&#xff0…