[?]*Longest Substring with At Most Two Distinct Characters

这也能算hard题……

Given a string, find the length of the longest substring T that contains at most 2 distinct characters.

For example, Given s = “eceba”,

T is "ece" which its length is 3.

public class Solution {
    public int lengthOfLongestSubstringTwoDistinct(String s)
    {
        int len = s.length();
        int max_len = 0;
        for (int i=0;i<len;i++)
        {
            HashSet<Character> set = new HashSet<Character>();
            int k = i;
            int j = i;
            for (; j<len; j++)
            {
                char c = s.charAt(j);
                if(!set.contains(c))
                {
                    if(set.size()<2)
                    {
                        set.add(c);
                    }
                    else
                    {
                        break;
                    }
                }

            }
            max_len = Math.max(max_len,j-k);
        }
        return max_len;
    }
}

如何优化?

时间: 2024-10-05 06:05:24

[?]*Longest Substring with At Most Two Distinct Characters的相关文章

LeetCode &quot;Longest Substring with At Most K Distinct Characters&quot;

A simple variation to "Longest Substring with At Most Two Distinct Characters". A typical sliding window problem. class Solution { public: int lengthOfLongestSubstringKDistinct(string s, int k) { unordered_map<char, unsigned> hm; int ret =

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

Given a string, find the length of the longest substring T that contains at most k distinct characters. For example, Given s = “eceba” and k = 2, T is "ece" which its length is 3. 这道题是之前那道Longest Substring with At Most Two Distinct Characters的拓展

【LeetCode】Longest Substring with At Most Two Distinct Characters (2 solutions)

Longest Substring with At Most Two Distinct Characters Given a string, find the length of the longest substring T that contains at most 2 distinct characters. For example, Given s = “eceba”, T is "ece" which its length is 3. 这个题很显然使用双指针进行遍历的,beg

340. Longest Substring with At Most K Distinct Characters

/* * 340. Longest Substring with At Most K Distinct Characters * 2016-7-10 by Mingyang * 利用HashMap来做sliding window的做法非常好! */ public int lengthOfLongestSubstringKDistinct(String s, int k) { Map<Character, Integer> map = new HashMap<>(); int lef

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

Given a string, find the length of the longest substring T that contains at most k distinct characters. For example, Given s = “eceba” and k = 2, T is "ece" which its length is 3. 159. Longest Substring with At Most Two Distinct Characters 的拓展,1

Longest Substring with At Most K Distinct Characters

Given a string, find the longest substring that contains only two unique characters. For example, given "abcbbbbcccbdddadacb", the longest substring that contains k unique character is "bcbbbbcccb". 分析: 用hashmap记录每个character从start到当前位置

[LeetCode] Longest Substring with At Most Two Distinct Characters及扩展

Given a string, find the length of the longest substring T that contains at most 2 distinct characters. For example, Given s = "eceba", T is "ece" which its length is 3. 这题的线性解法是维护一个sliding window,里面的子字符串只含最多两个不同字符.当要添加一个新字符时,需要完全去掉之前的

leetcode 159. Longest Substring with At Most Two Distinct Characters 求两个字母组成的最大子串长度 --------- java

Given a string, find the length of the longest substring T that contains at most 2 distinct characters. For example, Given s = "eceba", T is "ece" which its length is 3. 给一个字符串,求这个字符串中,由两个字母组成的,连续的最长子串的长度. 虽然是hard,但是感觉并没有什么难度. 用ch1和pre

[LeetCode] 340. Longest Substring with At Most K Distinct Characters

Given a string, find the length of the longest substring T that contains at most k distinct characters. Example 1: Input: s = "eceba", k = 2 Output: 3 Explanation: T is "ece" which its length is 3. Example 2: Input: s = "aa",