LeetCode程序員面試題之無(wú)重復(fù)字符的最長(zhǎng)子串
1.簡(jiǎn)述:
給定一個(gè)字符串 s ,請(qǐng)你找出其中不含有重復(fù)字符的 最長(zhǎng)子串 的長(zhǎng)度。
示例 1:
輸入: s = "abcabcbb"
輸出: 3
解釋: 因?yàn)闊o(wú)重復(fù)字符的最長(zhǎng)子串是 "abc",所以其長(zhǎng)度為 3。
示例 2:
輸入: s = "bbbbb"
輸出: 1
解釋: 因?yàn)闊o(wú)重復(fù)字符的最長(zhǎng)子串是 "b",所以其長(zhǎng)度為 1。
示例 3:
輸入: s = "pwwkew"
輸出: 3
解釋: 因?yàn)闊o(wú)重復(fù)字符的最長(zhǎng)子串是 "wke",所以其長(zhǎng)度為 3。
請(qǐng)注意,你的答案必須是 子串 的長(zhǎng)度,"pwke" 是一個(gè)子序列,不是子串。
2.代碼實(shí)現(xiàn):
class Solution { public int lengthOfLongestSubstring(String s) { // 哈希集合,記錄每個(gè)字符是否出現(xiàn)過(guò) Set<Character> occ = new HashSet<Character>(); int n = s.length(); // 右指針,初始值為 -1,相當(dāng)于我們?cè)谧址淖筮吔绲淖髠?cè),還沒(méi)有開(kāi)始移動(dòng) int rk = -1, ans = 0; for (int i = 0; i < n; ++i) { if (i != 0) { // 左指針向右移動(dòng)一格,移除一個(gè)字符 occ.remove(s.charAt(i - 1)); } while (rk + 1 < n && !occ.contains(s.charAt(rk + 1))) { // 不斷地移動(dòng)右指針 occ.add(s.charAt(rk + 1)); ++rk; } // 第 i 到 rk 個(gè)字符是一個(gè)極長(zhǎng)的無(wú)重復(fù)字符子串 ans = Math.max(ans, rk - i + 1); } return ans; } }
到此這篇關(guān)于LeetCode程序員面試題之無(wú)重復(fù)字符的最長(zhǎng)子串的文章就介紹到這了,更多相關(guān)Java計(jì)算無(wú)重復(fù)字符的最長(zhǎng)子串內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring請(qǐng)求參數(shù)校驗(yàn)功能實(shí)例演示
這篇文章主要介紹了Spring請(qǐng)求參數(shù)校驗(yàn)功能實(shí)例演示,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-05-05JavaWeb核心技術(shù)中Session與Cookie淺析
session的工作原理和cookie非常類似,在cookie中存放一個(gè)sessionID,真實(shí)的數(shù)據(jù)存放在服務(wù)器端,客戶端每次發(fā)送請(qǐng)求的時(shí)候帶上sessionID,服務(wù)端根據(jù)sessionID進(jìn)行數(shù)據(jù)的響應(yīng)2023-02-02java+selenium實(shí)現(xiàn)自動(dòng)化打開(kāi)頁(yè)面的方法
今天小編就為大家分享一篇java+selenium實(shí)現(xiàn)自動(dòng)化打開(kāi)頁(yè)面的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05JDK9的新特性之String壓縮和字符編碼的實(shí)現(xiàn)方法
這篇文章主要介紹了JDK9的新特性之String壓縮和字符編碼的實(shí)現(xiàn)方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05Java自帶定時(shí)任務(wù)ScheduledThreadPoolExecutor實(shí)現(xiàn)定時(shí)器和延時(shí)加載功能
今天小編就為大家分享一篇關(guān)于Java自帶定時(shí)任務(wù)ScheduledThreadPoolExecutor實(shí)現(xiàn)定時(shí)器和延時(shí)加載功能,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12