从今天开始博主会每天做一道算法题备战蓝桥杯,并分享博主做题的思路,有兴趣就加入我把!
算法题目:
有一个长度为 N 的字符串 S ,其中的每个字符要么是 B
,要么是 E
。
我们规定 S 的价值等于其中包含的子串 BB
以及子串 EE
的数量之和。
例如,BBBEEE
中包含 22 个 BB
以及 22 个 EE
,所以 BBBEEE
的价值等于 44。
我们想要计算 S 的价值,不幸的是,在我们得到 S 之前,约翰将其中的一些字符改为了 F
。
目前,我们只能看到改动后的字符串 S对于其中的每个 F
,我们并不清楚它之前是 B
还是 E
。
请你计算,改动前的 S 有多少种可能的价值并将所有可能价值全部输出。
输入格式
第一行包含一个整数 N。
第二行包含改动后的字符串 S。
输出格式
第一行输出一个整数 K,表示改动前的 S 的可能价值的数量。
接下来 K 行,按照升序顺序,每行输出一个可能价值。
输入样例1:
4
BEEF