Тестил на разных строках. Все выводится правильно Что надо валидатору? public static int lengthOfLongestUniqueSubstring(String s) { if(s == null || s.length() == 0) return 0; List<Integer> set = new ArrayList<>(); Set<Character> tempSet = new HashSet<>(); int previousSize = 0; lbl: for(int i = 0; i < s.length()-1; i++) { tempSet.add(s.charAt(i)); for(int j = i+1; j < s.length(); j++) { previousSize = tempSet.size(); tempSet.add(s.charAt(j)); if(tempSet.size() == previousSize) { set.add(s.substring(i, j).length()); tempSet.clear(); break; } if(j == s.length()-1) { set.add(s.substring(i).length()); break lbl; } } } Collections.sort(set); return set.get(set.size()-1); }