LeetCode 1405 最长快乐字符串[贪心] HERODING的LeetCode之路
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 1405 最长快乐字符串[贪心] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。
解题思路:
这是一种贪心的思想,每次都把最多数量的字符放到字符串末尾,当然要保证不能超过两个连续字符,就能保证最长快乐字符串,代码如下:
bool cmp(const pair<int, char>& a, const pair<int, char>& b)
return a.first > b.first;
class Solution
public:
string longestDiverseString(int a, int b, int c)
vector<pair<int, char>> count = a, 'a', b, 'b', c, 'c';
string s;
while(1)
sort(count.begin(), count.end(), cmp);
int len = s.size();
for(auto& [x, y] : count)
if(x == 0) continue;
if(len >= 2 && s[len - 1] == y && s[len - 2] == y) continue;
s += y;
x --;
break;
if(s.size() == len) break;
return s;
;
以上是关于LeetCode 1405 最长快乐字符串[贪心] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章