成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

159. Longest Substring with At Most Two Distinct C

liujs / 3389人閱讀

摘要:表示某個最后一次出現(xiàn)的地方可能只包含一種或者兩種只包含一種強制保持出現(xiàn)兩種保證,為了計算方便出現(xiàn)第三種的時候,直接計算出當(dāng)前長度。

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.
p1, p2 表示某個char最后一次出現(xiàn)的地方.
longest substring可能只包含一種char, 或者兩種char.
1. 只包含一種Char, 強制保持p1 == p2
2. 出現(xiàn)兩種char, 保證p1 <= p2, 為了計算方便
3. 出現(xiàn)第三種char的時候,i - (p1+1) + 1 = i- p1 直接計算出當(dāng)前substring長度。同時保證p1<=p2.
public class Solution {
    public int lengthOfLongestSubstringTwoDistinct(String s) {
        if(s == null || s.length() == 0) return 0;
        int p1 = 0, p2 = 0, len = 1, max = 1;
        char[] arr = s.toCharArray();
        for(int i = 1; i < arr.length; i++){
            // third char appear
            if(p1 != p2 && arr[i] != arr[p1] && arr[i] != arr[p2]){
                if(len > max) max = len;
                len = i - p1;
                p1 = p2;
                p2 = i;
            } else {
                // same char as p1 and p2
                if(arr[i] == arr[p1]){
                    p1 = p1 == p2 ? i : p2;
                }
                len++;
                p2 = i;
            }
        }
        if(len > max) max = len;
        return max;
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/70087.html

相關(guān)文章

  • 159. Longest Substring With At Most Two Distinct C

    摘要:題目解法最重要的是把最后一次出現(xiàn)的這個的記在的里面。所以當(dāng)出現(xiàn)不止兩個的數(shù)的時候,把這個最低的刪掉,把最的加就可以啦 題目:Given a string, find the length of the longest substring T that contains at most 2 distinct characters. For example, Given s = eceba...

    spacewander 評論0 收藏0
  • [LeetCode] 159. Longest Substring with At Most Two

    Problem Given a string s , find the length of the longest substring t that contains at most 2 distinct characters. Example 1: Input: ecebaOutput: 3Explanation: t is ece which its length is 3.Example ...

    geekidentity 評論0 收藏0
  • [Leetcode] Longest Substring with At Most 2 Distin

    摘要:最新思路解法哈希表法復(fù)雜度時間空間思路我們遍歷字符串時用一個哈希表,但這個哈希表只記錄兩個東西,一個字母和它上次出現(xiàn)的時的下標(biāo),另一個字母和它上次出現(xiàn)時候的下標(biāo)。這個通過用哈希表記錄字母上次出現(xiàn)的下標(biāo),來維護一個窗口的方法也可以用于。 Longest Substring with At Most Two Distinct Characters 最新思路解法:https://yanjia...

    imccl 評論0 收藏0
  • [leetcode] Minimum Window Substring

    摘要:使用而不是因為我們需要的是最值,中間值我們不在乎,所以一次收斂到最小。下面來三個需要查重并且記錄上次出現(xiàn)的位置,選擇以為例,走到用做檢查,發(fā)現(xiàn)出現(xiàn)過,把移到的下一個。是上個題目的簡易版,或者特殊版。 這里聊一聊解一類問題,就是滿足某一條件的substring最值問題。最開始我們以Minimum Window Substring為例,并整理總結(jié)leetcode里所有類似題目的通解。 Gi...

    Pines_Cheng 評論0 收藏0
  • [Leetcode] Substring with Concatenation of All Wor

    摘要:每次搜索中,我們通過哈希表維護一個窗口,比如中,我們先拿出。如果都不在數(shù)組中,那說明根本不能拼進去,則哈希表全部清零,從下一個詞開始重新匹配。 Substring with Concatenation of All Words You are given a string, s, and a list of words, words, that are all of the same...

    adie 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<