3. Longest Substring Without Repeating Characters(最長無重復(fù)子串)

Given a string, find the length of the longest substring without repeating characters.

Examples:

Given "abcabcbb", the answer is "abc", which the length is 3.

Given "bbbbb", the answer is "b", with the length of 1.

Given "pwwkew", the answer is "wke", with the length of 3. Note that the answer must be a substring, "pwke" is a subsequence and not a substring.

思路:

采用兩個變量left和res記錄最長子串的左邊界和最長子串的長度。遍歷字符串,如果沒有在hash表中出現(xiàn)過,就更新長度res,如果出現(xiàn)過就更新左邊界的值。最后給每一位字符串對應(yīng)的位置填入hash表中(從1開始)。注意更新res長度的判斷條件還有一個就是obj[s[i]]<left的值的時候即出現(xiàn)的這個字母即使存在過但他小雨左邊界,也需要更新長度。

var lengthOfLongestSubstring = function(s) {
            var obj = {};
            var left = 0;
            var res = 0;
            for (var i = 0; i < s.length; i++) {
                if (!obj[s[i]] || obj[s[i]] < left) {
                    res = Math.max(res, i - left + 1);
                } else {
                    left=obj[s[i]];
                }
                 obj[s[i]] = i + 1;
            }
     return res
        };
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容