龙星尘 2023-03-25 15:10 采纳率: 42.9%
浏览 49
已结题

C++算法题(不是很难)

贝西和埃尔西正在密谋最终推翻农夫约翰!他们通过N(1≤N≤2*10^5)条短信进行计划。他们的对话可以用长度为N的字符串S表示,其中Si是B或E,这意味着第i条消息分别由Bessie或Elsie发送。

然而,农夫约翰听说了这个计划,并试图拦截他们的谈话。因此,S的一些字母是F,这意味着Farmer John混淆了信息,发件人未知,也就是说'F'既可能是'B'也可能是'E'。

非模糊对话的兴奋程度是奶牛重复发送的次数,也就是说,子串BB或EE在S中出现的次数。你想找到原始信息的兴奋程度,但你不知道Farmer John的哪些信息实际上是Bessie/Elsie的。在所有可能的情况下,输出S的所有可能的兴奋水平。

INPUT FORMAT(输入来自终端/stdin):

第一行将由一个整数N组成。

下一行包含S。

OUTPUT FORMAT(将输出打印到终端/stdout):

第一个输出K,可能的不同兴奋水平的数量。在接下来的K行中,按递增顺序输出兴奋程度。

样本输入:

4
BEEF

样本输出:

2
1
2

样本输入:

9
FEBFEBFEB

样本输出:

2
2
3

样本输入:

10
BFFFFFEBFE

样本输出:

3
2
4
6
希望能各位帮忙解决此问题,最好给出代码和思路,谢谢!(不要超时哦1000ms)

  • 写回答

2条回答 默认 最新

  • IT_service_mesh 2023-03-25 15:19
    关注

    参考GPT和自己的思路:这道题可以用枚举的方法,枚举所有可能的F是B还是E,然后分别统计BB和EE的个数,最后输出所有可能的兴奋程度。

    具体实现可以用一个循环枚举F是B还是E,然后用两个变量分别记录统计得到的BB和EE的个数,最后将BB和EE的个数相加即可得到当前情况下的兴奋程度。最后将所有可能的兴奋程度存储在一个数组中并排序,最后输出数组中所有不同的元素即可。

    代码如下:

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月27日
  • 创建了问题 3月25日

悬赏问题

  • ¥20 Html备忘录页面制作
  • ¥15 黄永刚的晶体塑性子程序中输入的材料参数里的晶体取向参数是什么形式的?
  • ¥20 数学建模来解决我这个问题
  • ¥15 计算机网络ip分片偏移量计算头部是-20还是-40呀
  • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 django5安装失败