Given a string s, find the length of the longest substring without repeating characters.
Example 1:
**Input:** s = "abcabcbb"
**Output:** 3
**Explanation:** The answer is "abc", with the length of 3.
Example 2:
**Input:** s = "bbbbb"
**Output:** 1
**Explanation:** The answer is "b", with the length of 1.
Example 3:
**Input:** s = "pwwkew"
**Output:** 3
**Explanation:** The answer is "wke", with the length of 3.
Notice that the answer must be a substring, "pwke" is a subsequence and not a substring.
Example 4:
**Input:** s = ""
**Output:** 0
Constraints:
0 <= s.length <= 5 * 104
s consists of English letters, digits, symbols and spaces.
AC1: Sliding window, template
A template applicale to its evolved versions.
classSolution {publicintlengthOfLongestSubstring(String s) {// edge casesif (s ==null||s.length() ==0) return0;// build note/mapint[] note =newint[256];// walk stringint l =0, r =0, repeat =0, lgst =0;for (; r <s.length(); r++) {char c =s.charAt(r); note[c]++;if (note[c] >1) repeat++; // update counter, to validate window// window is qualifyingwhile (repeat >0) { lgst =Math.max(lgst, r - l); // record current substring length// move window note[s.charAt(l)]--;if (note[s.charAt(l)] ==1) repeat--;if (l >= r) break; l++; } }// r hit the end? lgst =Math.max(lgst, r - l);// resultreturn lgst; }}