Given a string, find the length of the longest substring without repeating characters.Example 1:Input: “abcabcbb"Output: 3 Explanation: The answer is “abc”, with the length of 3. Example 2:Input: “bbbbb"Output: 1Explanation: The answer is “b”, with the length of 1.Example 3:Input: “pwwkew"Output: 3Explanation: 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.难度:medium题目: 给定一字符串,找出最长且无重复字符的子串。思路:创建字符下标数组用以记录访问过的字符串中的字符。下标由1开始,用以区别数组的初始化值0.定义子串的起始下标,子串的窗口为[begin indx, i]Runtime: 19 ms, faster than 96.64% of Java online submissions for Longest Substring Without Repeating Characters.class Solution { public int lengthOfLongestSubstring(String s) { if (null == s || "” == s) { return 0; } int[] charIdxArray = new int[256]; int maxLen = 0; int beginIdx = 0; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); int idx = charIdxArray[c]; if (idx < 1 || idx <= beginIdx) { charIdxArray[c] = i + 1; } else { beginIdx = idx; charIdxArray[c] = i + 1; } maxLen = Math.max(maxLen, i + 1 - beginIdx); } return maxLen; }}