代码学习总结(三)
代码学习总结(三)
这个系列的博客是记录下自己学习代码的历程,有来自平台上的,有来自笔试题回忆的,主要基于 C++ 语言,包括题目内容,代码实现,思路,并会注明题目难度,保证代码运行结果
1 判断并构造 eleme 型字符串
简单
eleme 型字符串
判断与构造
小红有一个长度为n的字符串,字符串仅包含 e l m 三种字符。如果一个字符串满足,不存在连续的ee、lm、ml、ll、mm子串
则称这个字符串为 eleme 型字符串。小红想知道,这个字符串能否重排为eleme型字符串
判断并构造eleme型字符串
示例输入输出 1:
输入:s = “eeeellmmm”
输出:NO
示例输入输出 2:
输入:s = “eeelm”
输出: emele
示例输入输出 3:
输入:s = “eeelmggg”
输出: gegelgme
思路解析:
- 首先计算每个字符出现的频率,并使用最大堆,按照字符出现频率进行排序
- 构造优先队列,且优先队列会根据字符出现的次数进行排序
- 随后按照规则,对字符进行排序,当出现不符合规则的情况,直接输出 ‘NO’