@ninijiaLeetcode每日一题练习 ------ 1405. 最长快乐字符串 中发帖

从Leetcode 每日一题练习继续讨论: 
1405. 最长快乐字符串
1405. Longest Happy String
题解
本题要求构造一个最长的happy字符串,可以使用给定数量的a,b,c来构造。唯一的限制是不能出现连续三个相同字符。则可以用贪心来解决。每次都给当前字符串添加上满足限制的当前剩余数量最多的字符,直到无法在满足限制的条件下添加任何字符或字符全部用光为止。
因为题中只有三个字符,则可以每次都给三个字符排序,排序后挨个遍历,找到满足条件的字符添加到字符串末尾。
当然用最大堆同样也是可以的,使用最大堆要先判断堆顶字符是否连续三个,若是连续三个,则临时弹出堆顶,用新的堆顶字符构造字符串,再将原来的堆顶恢复。若新的堆顶字符个数为0,则无法继续构造。
代码
class Solution {
public:
string longestDiverseStri...