文章目录
- 3 参考代码
1 题目
LUCKY STRING
时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小)
题目描述
A string s is LUCKY if and only if the number of different characters in s is a fibonacci number. Given a string consisting of only lower case letters , output all its lucky non-empty substrings in lexicographical order. Same substrings should be printed once.
输入描述:
a string consisting no more than 100 lower case letters.
输出描述:
output the lucky substrings in lexicographical order.one per line. Same substrings should be printed once.
输入例子:
aabcd
输出例子:
a
aa
aab
aabc
ab
abc
b
bc
bcd
c
cd
d
2 解析
2.1 题意
判断当前字符串的所有子串不同字母的个数是否是斐波那契数,如果是,则输出,否则,继续判断下一个子串。
2.2 思路
- 打表,打印100以内的斐波那契数
- 用set<char>实现去重统计字符串个数,
- 每次判断当前子串的不同字母的个数是否是斐波那契数,如果是,则存入set<string>(是想按字典序排序的要求);如果是下一个斐波那契数,重新判断,存入set<string>(是想按字典序排序的要求);如果不是,继续判断下一个子串。
- 最后输出结果。
3 参考代码