国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

力扣2182.構(gòu)造限制重復的字符串

這篇具有很好參考價值的文章主要介紹了力扣2182.構(gòu)造限制重復的字符串。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

?思路:先記錄每個字符的出現(xiàn)次數(shù),構(gòu)建一個新字符串,從尾取字符,每取一個該字符個數(shù)-1,若該字符已經(jīng)取到有repeatLimit個,則遞歸取次大的字符,并對應字符個數(shù)-1,若沒有次大字符了,則直接返回

力扣2182.構(gòu)造限制重復的字符串,力扣刷題筆記,leetcode,算法,職場和發(fā)展,c++

代碼:

class Solution {
public:

    bool lastchar(string &s, vector<int>& alphabet, int i){    //遞歸找次大字符
        if(--i == -1) return false;    //沒有返回false
        if(alphabet[i] != 0){    
            alphabet[i]--;    //找到了對應字符個數(shù)-1
            s += i + 'a';    //取出字符
            return true;    //有返回true
        }
        return lastchar(s, alphabet, i);
    }

    string repeatLimitedString(string s, int repeatLimit) {
        vector<int> alphabet(26);    //記錄每個字母個數(shù)
        for(auto letter : s)    //記錄
            alphabet[letter - 'a']++;

        string newstr = "";    //存儲結(jié)果
        for(int i = 25; i >= 0; --i){
            if(alphabet[i] != 0){
                int count = 0;    //記錄當前字符取了幾個了
                while(alphabet[i]){    //取完當前字符為止
                    if(count == repeatLimit){    //若已經(jīng)取到repeatLimit個
                        if(!lastchar(newstr,alphabet,i)){    //找次大字符,若沒有直接返回結(jié)果
                            return newstr;
                        }
                        count = 0;    //重置取了幾個
                    }
                    alphabet[i]--;    //沒有取到repeatLimit個則對應字符個數(shù)-1
                    ++count;    //取值個數(shù)+1
                    newstr += i + 'a';    //取出字符
                }
            }
            
        }
        
        return newstr;
    }
};

?文章來源地址http://www.zghlxwxcb.cn/news/detail-789324.html

到了這里,關(guān)于力扣2182.構(gòu)造限制重復的字符串的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關(guān)文章

  • 【leetcode 力扣刷題】字符串翻轉(zhuǎn)合集(全部反轉(zhuǎn)///部分反轉(zhuǎn))

    【leetcode 力扣刷題】字符串翻轉(zhuǎn)合集(全部反轉(zhuǎn)///部分反轉(zhuǎn))

    題目鏈接:344. 反轉(zhuǎn)字符串 題目內(nèi)容: 題目中重點強調(diào)了必須 原地修改 輸入數(shù)組,即不能新建一個數(shù)組來完成字符串的反轉(zhuǎn)。我們注意到: 原來下標為0的,反轉(zhuǎn)后是size - 1【原來下標是size - 1的,反轉(zhuǎn)后是0】; 原來下標是1的,反轉(zhuǎn)后是size - 2【原來下標是size -2的,反轉(zhuǎn)后

    2024年02月11日
    瀏覽(33)
  • 【leetcode 力扣刷題】字符串匹配之經(jīng)典的KMP!??!

    【leetcode 力扣刷題】字符串匹配之經(jīng)典的KMP?。?!

    以下是能用KMP求解的算法題,KMP是用于字符串匹配的經(jīng)典算法【至今沒學懂………啊啊啊】 題目鏈接:28. 找出字符串中第一個匹配項的下標 題目內(nèi)容: 題意還是很好理解的,要在字符串haystack中查找一個完整的needle,即字符串匹配。 暴力求解就是用 兩層循環(huán) :haystack從第

    2024年02月09日
    瀏覽(32)
  • 力扣_字符串10—重復的DNA序列

    DNA序列 由一系列核苷酸組成,縮寫為 ‘A’, ‘C’, ‘G’ 和 ‘T’.。 例如,“ACGAATTCCG” 是一個 DNA序列 。 在研究 DNA 時,識別 DNA 中的重復序列非常有用。 給定一個表示 DNA序列 的字符串 s ,返回所有在 DNA 分子中 出現(xiàn)不止一次 的 長度為 10 的序列(子字符串)。你可以按 任

    2024年02月19日
    瀏覽(17)
  • 【力扣JavaScript】1047. 刪除字符串中的所有相鄰重復項
  • 【力扣·每日一題】2645. 構(gòu)造有效字符串的最小插入數(shù)(動態(tài)規(guī)劃 貪心 滾動數(shù)組優(yōu)化 C++ Go)

    題目鏈接 給你一個字符串 word ,你可以向其中任何位置插入 “a”、“b” 或 “c” 任意次,返回使 word 有效 需要插入的最少字母數(shù)。 如果字符串可以由 “abc” 串聯(lián)多次得到,則認為該字符串 有效 。 提示: 1 = w o r d . l e n g t h = 50 1 = word.length = 50 1 = w or d . l e n g t h = 50 w

    2024年01月16日
    瀏覽(26)
  • 算法刷題-字符串-重復的子字符串

    算法刷題-字符串-重復的子字符串

    KMP算法還能干這個 力扣題目鏈接 給定一個非空的字符串,判斷它是否可以由它的一個子串重復多次構(gòu)成。給定的字符串只含有小寫英文字母,并且長度不超過10000。 示例 1: 輸入: “abab” 輸出: True 解釋: 可由子字符串 “ab” 重復兩次構(gòu)成。 示例 2: 輸入: “aba” 輸出: False 示

    2024年02月09日
    瀏覽(25)
  • 力扣_字符串7—交錯字符串

    給定三個字符串 s 1 、 s 2 、 s 3 s1、s2、s3 s 1 、 s 2 、 s 3 ,請你幫忙驗證 s 3 s3 s 3 是否是由 s 1 s1 s 1 和 s 2 s2 s 2 交錯 組成的。 兩個字符串 s s s 和 t t t 交錯 的定義與過程如下,其中每個字符串都會被分割成若干 非空 子字符串: s = s 1 + s 2 + . . . + s n s = s1 + s2 + ... + sn s = s 1

    2024年02月20日
    瀏覽(33)
  • 力扣_字符串1—字符串轉(zhuǎn)整數(shù)

    請你來實現(xiàn)一個 myAtoi(string s) 函數(shù),使其能將字符串轉(zhuǎn)換成一個 32 位有符號整數(shù)(類似 C/C++ 中的 atoi 函數(shù))。 函數(shù) myAtoi(string s) 的算法如下: 讀入字符串并丟棄無用的前導空格 檢查下一個字符(假設還未到字符末尾)為正還是負號,讀取該字符(如果有)。 確定最終結(jié)果

    2024年01月17日
    瀏覽(18)
  • (字符串 ) 459. 重復的子字符串——【Leetcode每日一題】

    (字符串 ) 459. 重復的子字符串——【Leetcode每日一題】

    難度:簡單 給定一個非空的字符串 s ,檢查是否可以通過由它的一個子串重復多次構(gòu)成。 示例 1: 輸入: s = “abab” 輸出: true 解釋: 可由子串 “ab” 重復兩次構(gòu)成。 示例 2: 輸入: s = “aba” 輸出: false 示例 3: 輸入: s = “abcabcabcabc” 輸出: true 解釋: 可由子串 “abc” 重復四次構(gòu)

    2024年02月07日
    瀏覽(22)
  • KMP-重復子字符串

    Problem: 459. 重復的子字符串 給定一個字符串str1, 判斷其是否由重復的子串構(gòu)成。 例子1:輸入 str1=‘a(chǎn)babab’ ;輸出 true 例子2:輸入 str1=‘a(chǎn)babac’ ;輸出 false 重復子字符串組成的字符串,其肯定存在一個后綴和前綴是一樣的,并且這個后綴其由后綴前面的字符子串組成。所以

    2024年01月25日
    瀏覽(58)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包