日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 358. K 距离间隔重排字符串(贪心+优先队列)

發(fā)布時間:2024/7/5 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 358. K 距离间隔重排字符串(贪心+优先队列) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • 1. 題目
    • 2. 解題

1. 題目

給你一個非空的字符串 s 和一個整數(shù) k,你要將這個字符串中的字母進行重新排列,使得重排后的字符串中相同字母的位置間隔距離至少為 k

所有輸入的字符串都由小寫字母組成,如果找不到距離至少為 k 的重排結(jié)果,請返回一個空字符串 “”。

示例 1: 輸入: s = "aabbcc", k = 3 輸出: "abcabc" 解釋: 相同的字母在新的字符串中間隔至少 3 個單位距離。示例 2: 輸入: s = "aaabc", k = 3 輸出: "" 解釋: 沒有辦法找到可能的重排結(jié)果。示例 3 輸入: s = "aaadbbcc", k = 2 輸出: "abacabcd" 解釋: 相同的字母在新的字符串中間隔至少 2 個單位距離。

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/rearrange-string-k-distance-apart
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

2. 解題

類似題目:LeetCode 767. 重構(gòu)字符串(堆)

  • 先對字符計數(shù)
  • 將 <字符,計數(shù)> 插入優(yōu)先隊列(數(shù)量優(yōu)先,字符順序其次)
  • 隊列的 size >= k 時,取出前 k 大的加入 ans 字符串,相應字符計數(shù) -1,將計數(shù)不為0的再次放回隊列
  • 當隊列 size < k 時,隊列內(nèi)的計數(shù)都只能為 1, 不然多出來的字符間隔不能 滿足 k 的要求
class Solution {struct cmp{bool operator()(pair<char, int>& a, pair<char, int>& b){if(a.second == b.second)return a.first < b.first;return a.second < b.second;//數(shù)量多的優(yōu)先}}; public:string rearrangeString(string s, int k) {if(k <= 1) return s;unordered_map<char, int> count;for(int i = 0; i < s.size(); i++) count[s[i]]++;//計數(shù)priority_queue<pair<char, int>, vector<pair<char,int>>, cmp> q;for(auto& c : count)q.push(c);//插入優(yōu)先隊列string ans;while(q.size() >= k){vector<pair<char, int>> temp;int t = k;while(t--)//去除前k個最多的{auto tp = q.top();q.pop();int num = tp.second;char ch = tp.first;ans += ch;num--;if(num != 0)//不為0的先存起來temp.push_back({ch, num});}for(auto& char_num : temp)//再放回隊列q.push(char_num);}while(!q.empty()){if(q.top().second == 1){ans += q.top().first;q.pop();}else//計數(shù)不為1的,間距不滿足要求return "";}return ans;} };

128 ms 12.7 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

長按或掃碼關(guān)注我的公眾號(Michael阿明),一起加油、一起學習進步!

總結(jié)

以上是生活随笔為你收集整理的LeetCode 358. K 距离间隔重排字符串(贪心+优先队列)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 人人干天天干 | 美女的诞生免费观看在线高清 | 香蕉久久夜色 | 91久久精品一区二区三区 | 一级黄色录象 | 中文在线免费视频 | 成人手机视频在线观看 | 伊人啪啪| 91拔萝卜视频 | 中文字幕av无码一区二区三区 | 伊人激情影院 | 亚洲av日韩av在线观看 | 草久久久久久 | 色牛影院| 香蕉视频成人在线 | 亚洲二区在线 | eeuss国产一区二区三区黑人 | 成人激情小视频 | 少妇人妻一区二区 | 日本黄色片在线播放 | 一级全黄裸体免费视频 | 日韩 欧美 国产 综合 | 亚州激情视频 | 久热伊人 | 欧美精品videos | 日日干日日摸 | 精品国产综合 | 中文字幕第一页久久 | 人人射人人干 | 日韩美在线 | 我不卡av| 国产精品99视频 | 无遮挡的裸体按摩的视频 | 精品国产aⅴ一区二区三区四川人 | 在线观看国产区 | 艳情五月| 天堂久久网 | 成人午夜免费福利视频 | 熟妇的味道hd中文字幕 | 亚洲色图图 | 日韩一级淫片 | 国产又粗又猛又爽又黄的视频一 | 国产亚洲精品成人 | 91一区在线| 色就色欧美 | 色综合亚洲 | 国产一区,二区 | 久久婷婷国产麻豆91天堂 | 久久性生活片 | 久久精品—区二区三区舞蹈 | 亚洲国产视频网站 | 在线不卡免费av | 日韩字幕在线观看 | 国产成人精品一区二三区 | 亚洲欧美中文日韩在线观看 | 蜜桃无码一区二区三区 | 韩国性猛交╳xxx乱大交 | 欧美成人精品一区二区男人看 | 国产群p视频 | 91免费视频网址 | 一区二区视频在线观看 | 九色视频91| www婷婷av久久久影片 | 三级在线免费 | 精品国产av无码一区二区三区 | 女人叫床很黄很污句子 | 手机看片日韩福利 | 午夜剧场免费在线观看 | 麻豆免费在线播放 | 亚洲av无码国产精品永久一区 | 麻豆成人在线观看 | 日本黄网在线观看 | 色欧美视频 | 久久久久毛片 | 杏导航aⅴ福利网站 | 97视频播放 | 国产精品99无码一区二区视频 | 成人av网站在线观看 | 超碰最新网址 | 精品无码av一区二区三区四区 | 日韩avav| 粉嫩一区| 人妻熟人中文字幕一区二区 | 国产精品破处 | 天天操网站 | 天天干天 | 91在线观看喷潮 | 天堂a√在线 | 欧美人妖老妇 | 91激情网 | 蜜桃av久久久亚洲精品 | 男人添女人囗交视频 | 久久艹av| 色老头免费视频 | 亚洲专区区免费 | 91大神精品在线 | 春色av| 亚洲成熟毛多妇女av毛片 | 国产wwwxxx|