LeetCode 3 Longest Substring Without Repeating Characters

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.

求最长非重复子串

比如 “abcabcbb” => “abc” =>长度为3
比如 “bbbbb” => “b” => 长度为1
比如 “pwwkew” => “wke” =>长度为3


/** * @param {string} s * @return {number} */ var lengthOfLongestSubstring = function(s) { var hash = {}; var start = 0; var ans = 0; for (var i = 0, len = s.length; i < len; i++) { var item = s[i]; if (!hash[item]) // item 不在substring中 hash[item] = true; else { // item 已经在 substring 中存在了 for (; 😉 { if (s[start] === item) { // 开头重复 start++; break; } hash[s[start]] = false; //非开头重复 start++; } }// 结束 for loop ans = Math.max(ans, i - start + 1); } return ans; };