public int lengthOfLongestSubstring(String s) { /** * 思路: * 1.首先获取所有的子字符串 * 2.判断当前字符串是否有重复的字符 * 3.判断当前字符串的长度是多少 */ if (s == null || s == "") { return 0; } char[] charArray = s.toCharArray(); List<String> list = new ArrayList<>(); int len = s.length(); String maxStr = ""; // 每个字符串的长度 for (int i = 1; i <= len; i++) { // 每个字符串的开始位置 for (int j = 0; j < len; j++) { int end = j + i; if (end > len) { continue; } String subStr = s.substring(j, end); boolean flag = true; HashSet<Character> subSet = new HashSet<>(); for (int k = 0; k < subStr.length(); k++) { if (subSet.contains(charArray[k - 1])) { subSet.add(charArray[k - 1]); } else { flag = false; break; } } if (flag) { if (subStr.length() > maxStr.length()) { maxStr = subStr; } list.add(subStr); } } } return maxStr.length(); }
无重复字符最大子字符串长度
最新推荐文章于 2024-07-25 16:25:04 发布