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.
class Solution {
public int lengthOfLongestSubstring(String s) {
if (s == null || s.trim().equals( "")) {
return 0;
}
int maxLength = 1;
for (int i = 0; i < s.length(); i++) {
int index = 1;
for (int j = i + 1; j < s.length(); j++) {
String sub = s.substring(i, j);
if (sub.indexOf(s.charAt(j)) != -1) {
if (maxLength < index) {
maxLength = index;
}
break;
} else {
index++;
if (maxLength < index) {
maxLength = index;
}
}
}
}
return maxLength;
}
}
public int lengthOfLongestSubstring(String s) {
int result = 0;
int start = 0;
boolean set[] = new boolean[256];
for (int i = 0; i < s.length(); i++) {
while (set[s.charAt(i)]) {
set[s.charAt(start)] = false;
start++;
}
set[s.charAt(i)]=true;
result = Math.max(result, i - start + 1);
}
return result;
}