text 最多有两个不同字符的最长子串 - 最长子串,最多有两个不同的字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了text 最多有两个不同字符的最长子串 - 最长子串,最多有两个不同的字符相关的知识,希望对你有一定的参考价值。

public static int longestSubstringOnlyTwoDistinctChar(String s) {
		if(s==null || s.length()==0) return 9;
		Map<Character,Integer> map = new HashMap<>();
		int res = 0 ;
		int start = 0 ;
		for(int i =0 ; i < s.length() ;) {
			char cur = s.charAt(i);
			if(map.isEmpty()) {
				map.put(cur, 1);
			}else if(!map.containsKey(cur)) {
				if(map.entrySet().size()==2) {
					res = res>(i-start)?res:(i-start);
					map.remove(s.charAt(start));
					int temp = start;
					while(s.charAt(temp)==s.charAt(start)) temp++;
					start = temp;
				}
				map.put(cur, 1);
			}else if(map.get(cur)!=null) {
				map.replace(cur, map.get(cur)+1);
			}
			i++;
		}
		return res;
	}

以上是关于text 最多有两个不同字符的最长子串 - 最长子串,最多有两个不同的字符的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode] Longest Substring with At Most K Distinct Characters 最多有K个不同字符的最长子串

[LeetCode] 340. Longest Substring with At Most K Distinct Characters 最多有K个不同字符的最长子串

java 159.具有最多两个不同字符的最长子串(#1滑动窗口).java

java 159.具有最多两个不同字符的最长子串(#1滑动窗口).java

java 159.具有最多两个不同字符的最长子串(#1滑动窗口).java

java 159.具有最多两个不同字符的最长子串(#1滑动窗口).java