1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| class Solution { public int lengthOfLongestSubstring(String s) {
int n = s.length();
int[] charLastOccIndex = new int[128]; Arrays.fill(charLastOccIndex, -1);
int left = -1; int max = 0;
for (int i = 0; i < n; i++) {
char c = s.charAt(i); left = Math.max(left, charLastOccIndex[c] + 1); max = Math.max(max, i - left + 1);
charLastOccIndex[c] = i; }
return max; } }
|