//给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 // // // // 示例 1: // // //输入: s = "abcabcbb" //输出: 3 //解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 // // // 示例 2: // // //输入: s = "bbbbb" //输出: 1 //解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 // // // 示例 3: // // //输入: s = "pwwkew" //输出: 3 //解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 // 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。 // // // 示例 4: // // //输入: s = "" //输出: 0 // // // // // 提示: // // // 0 <= s.length <= 5 * 104 // s 由英文字母、数字、符号和空格组成 // // 滑动窗口 // 👍 4683 👎 0 class Solution { public int lengthOfLongestSubstring(String s) { LinkedBlockingQueue<Character> queue = new LinkedBlockingQueue<>(); char[] chars = s.toCharArray(); int size = 0; String s1 = ""; for (int i = 0;i<chars.length;i++){ if (queue.contains(chars[i])){ String queueStr = queue.toString(); if (queueStr.length()>s1.length()){ size = queue.size(); s1 = queueStr; } queue.clear(); } queue.add(chars[i]); } return size; } }
2020-12-09无重复字符串的最长子串-----滑动窗口
最新推荐文章于 2023-05-23 23:27:44 发布