小米訴爭“小米金服”商標被駁回
阿新 • • 發佈:2022-01-07
請從字串中找出一個最長的不包含重複字元的子字串,計算該最長子字串的長度。
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/zui-chang-bu-han-zhong-fu-zi-fu-de-zi-zi-fu-chuan-lcof
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
心之所向,素履以往 生如逆旅,一葦以航import java.util.HashMap; import java.util.Map; import java.util.Scanner; class Solution { public int lengthOfLongestSubstring(String s) { if (s == null || s.length() == 0) { return 0; } Map<Character, Integer> cntMap = new HashMap<>(); int ans = 0; int left = 0, right = 0; while (right < s.length()) { cntMap.put(s.charAt(right), cntMap.getOrDefault(s.charAt(right), 0) + 1); if (cntMap.get(s.charAt(right)) == 2) { while (cntMap.get(s.charAt(left)) != 2) { cntMap.put(s.charAt(left), cntMap.get(s.charAt(left)) - 1); left++; } cntMap.put(s.charAt(left), cntMap.get(s.charAt(left)) - 1); left++; } ans = Math.max(ans, right - left + 1); right++; } return ans; } public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { System.out.println(new Solution().lengthOfLongestSubstring(in.next())); } } }