leetcode 1405. Longest Happy String 最长快乐字符串-耗时100
Problem: 1405. Longest Happy String 最长快乐字符串耗时100%首先按照greedy的策略每次最多加两个字符优先队列拿到数量最多的字符不停的拼起来延迟放入pre先拿到cnt和ch再放入pre最后考虑到某个字符可能很多很多所以稀疏化找到其他连续的两个字符拆出来一个放到最后然后再次拼起来Codeusing pr pairint, char; class Solution { public: string longestDiverseString(int a, int b, int c) { priority_queuepr, vectorpr, decltype(lesspr()) pq; if(a 0) pq.push({a, a}); if(c 0) pq.push({c, c}); if(b 0) pq.push({b, b}); string tg; int cnt, mx; char ch, mxch; pr pre {-1, 0}; while(!pq.empty()) { cnt pq.top().first; ch pq.top().second; pq.pop(); if(pre.first 0) pq.push(pre); if(cnt 2) { tg ch; cnt-2; if(cnt 0) pre {cnt, ch}; else pre {-1, 0}; } else pre {-1, 0}; tg ch; } vectorchar tor {a, b, c}; cnt pre.first; ch pre.second; bool find; while(cnt 0) { find false; char hcr; int i; for(i 0; i tg.size(); i) { if(ch ! tg[i]) { if(i1 tg.size() tg[i1]tg[i]) { hcr tg[i]; find true; break; } } } if(!find) return tg; tg.erase(tg.begin() i); tg hcr; tg ch; cnt--; if(cnt 0) { tg ch; cnt--; } } return tg; } };
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2421899.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!