По заданной строке найдите длину самой длинной подстроки без повторяющихся символов.
Пример 1:
Ввод: "abcabcbb"
Ввод: 3
Объяснение: Ответ "abc" длиной 3.
Я пробовал описанную выше проблему со стеком, но не смог пройти все тестовые случаи.
public int lengthOfLongestSubstring(String s) {
Stack<Character> stk = new Stack<>();
int result = 0;
for(int i=0;i<s.length();i++){
if(stk.isEmpty() || (!stk.contains(s.charAt(i)))){
stk.push(s.charAt(i));
}
else{
int size = stk.size();
if(size > result){
result = size;
}
stk.clear();
stk.push(s.charAt(i));
}
}
return result;
}
Я получаю ошибку для приведенного ниже теста.
Ввод: ""
Выход: 0
Ожидаемый: 1