LeetCode_3_無重復(fù)字符的最長子串_JS

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

示例 1:
輸入: s = "abcabcbb"
輸出: 3
解釋: 因為無重復(fù)字符的最長子串是 "abc"仆救,所以其長度為 3。

示例 2:
輸入: s = "bbbbb"
輸出: 1
解釋: 因為無重復(fù)字符的最長子串是 "b",所以其長度為 1其骄。

示例 3:
輸入: s = "pwwkew"
輸出: 3
解釋: 因為無重復(fù)字符的最長子串是 "wke",所以其長度為 3扯旷。
請注意拯爽,你的答案必須是 子串 的長度,"pwke" 是一個子序列钧忽,不是子串毯炮。

示例 4:
輸入: s = ""
輸出: 0

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán)耸黑,非商業(yè)轉(zhuǎn)載請注明出處桃煎。

思路一:

不用動腦筋的方法,仍然是一個雙重循環(huán)遍歷大刊。從字符串的第一位開始备禀,一個個往后找最長不重復(fù)的子串,取長度最大的

例如‘pwwkew’

  • 從第0位開始看,p往后找到不重復(fù)子串為pw曲尸,長度為2
  • 第1位w往后不重復(fù)子串只有w赋续,長度為1
  • 第2位w往后不重復(fù)子串是wke, 長度為3
  • 第3位k往后不重復(fù)子串是kew, 長度為3
  • 第4位e往后不重復(fù)子串是ew,長度為2
  • 最后一位w不重復(fù)子串是w另患,長度為1
  • 因此我們得到結(jié)果是3

代碼實現(xiàn)

var lengthOfLongestSubstring = function(s) {
    let max = 0;
    for(let i = 0; i<s.length; i+=1) {
        let temp = [s[i]];
        for(let j = i+1; j<s.length; j+=1) {
            if (temp.includes(s[j])) {
                break;
            }
            temp.push(s[j]);
        }
        max = Math.max(max, temp.length);
    }
    return max;
};

思路二:

我們用滑動窗口的思想來解決纽乱。什么是滑動窗口呢? 我們直接來看這個例子,用例子來說明

例如‘pwwkew’

  • 我們先建立一個空窗口昆箕,用一個數(shù)組來表示windowArr = []
  • 遍歷字符串鸦列,字符串的第0位p在窗口中不存在,我們把它加進去, windowArr = ['p']鹏倘, 此時最大子串長度為1
  • 字符串的第1位w在窗口中不存在薯嗤,我們把它加進去, windowArr = ['p', 'w'], 此時最大子串長度為2
  • 字符串的第2位w在窗口中已經(jīng)存在了纤泵,出現(xiàn)的位置為1骆姐,也就是說從位置1往前的任意字符開始到當(dāng)前位置,都會出現(xiàn)兩個重復(fù)的w捏题,那位置1之前的所有字符我們都不需要再考慮了玻褪,直接把窗口滑到位置1之后,也就是位置2公荧, windowArr = ['w'],此時最大子串長度還是為2
  • 字符串的第3位k在窗口中不存在带射,我們把它加進去,windowArr = ['w', 'k'], 此時最大子串長度為2
  • 字符串的第4位e在窗口中不存在循狰,我們把它加進去窟社,windowArr = ['w', 'k', 'e'], 此時最大子串長度為3
  • 字符串的第5位w在窗口中已經(jīng)存在了,出現(xiàn)的位置是0绪钥,所以我們把窗口滑到0之后桥爽,也就是['k','e', 'w'], 此時最大子串長度為3
    字符串已經(jīng)全部遍歷完成,無重復(fù)字符的最長子串長度為3
滑動窗口示例

代碼實現(xiàn)

var lengthOfLongestSubstring = function(s) {
    let windowArr = [];
    let max = 0;
    for(let i = 0; i<s.length; i+=1) {
        const existedIndex = windowArr.indexOf(s[i]);
        if (existedIndex > -1) {
            windowArr.splice(0, existedIndex +1);
        }
        windowArr.push(s[i]);
        max = Math.max(max, windowArr.length);
    }
    return max;
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末昧识,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子盗扒,更是在濱河造成了極大的恐慌跪楞,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侣灶,死亡現(xiàn)場離奇詭異甸祭,居然都是意外死亡,警方通過查閱死者的電腦和手機褥影,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門池户,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事校焦∩薅叮” “怎么了?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵寨典,是天一觀的道長氛雪。 經(jīng)常有香客問我,道長耸成,這世上最難降的妖魔是什么报亩? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮井氢,結(jié)果婚禮上弦追,老公的妹妹穿的比我還像新娘。我一直安慰自己花竞,他們只是感情好劲件,可當(dāng)我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著左胞,像睡著了一般寇仓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上烤宙,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天遍烦,我揣著相機與錄音,去河邊找鬼躺枕。 笑死服猪,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拐云。 我是一名探鬼主播罢猪,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼叉瘩!你這毒婦竟也來了膳帕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤薇缅,失蹤者是張志新(化名)和其女友劉穎危彩,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泳桦,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡汤徽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了灸撰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谒府。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡拼坎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出完疫,到底是詐尸還是另有隱情泰鸡,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布趋惨,位于F島的核電站鸟顺,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏器虾。R本人自食惡果不足惜讯嫂,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望兆沙。 院中可真熱鬧欧芽,春花似錦、人聲如沸葛圃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽库正。三九已至曲楚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間褥符,已是汗流浹背龙誊。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留喷楣,地道東北人趟大。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像铣焊,于是被迫代替她去往敵國和親逊朽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容