代码学习总结(三)

代码学习总结(三)

这个系列的博客是记录下自己学习代码的历程,有来自平台上的,有来自笔试题回忆的,主要基于 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

思路解析:

  1. 首先计算每个字符出现的频率,并使用最大堆,按照字符出现频率进行排序
  2. 构造优先队列,且优先队列会根据字符出现的次数进行排序
  3. 随后按照规则,对字符进行排序,当出现不符合规则的情况,直接输出 ‘NO’

你可能感兴趣的:(C++,代码练习,算法,学习,代码总结)