A:Hospital
B:Happy Numbers
C:Absent Substrings
D:Piece of cake!
E:Constructing Roads
F:Stacking Cylinders
G:Frosh Week
H:Count The Number
I:Passage
J:Mining
c题看到做的人不多,稍稍说下。
题目大意:a b c 任意组合组成字符串,然后排序先根据字符串长度,长度相同再根据字典序排序
所以得到这样的序列:
a
b
c
aa
ab
...
题目的任务是找到第一个在字符串中没有出现的以上字符串
比如样例 bcabacbaa
出现了 a b c aa ab ac ba ,然后下一个是bb,没有出现就按格式输出就好了,
第二行是一个空的字符串所以直接没有a,按格式输出,同时也说明要用gets()输入,而不是%s输入
接下来的问题就是一个个得到这样的字符串从a b c aa ab..,然后没有找到就输出来就好了
得到字符串的方法:依次编号a对应1 b对应2 c对应3 aa对应4 ab对应5 ac对应6
就可以想到类似于二进制思路,但是没有0,因为只有abc3个值,所以从低位到高位权值依次是1 3 9 。。。
所以比如6转化为字符串可以这样,6%3是0,虽然理论上最低位应该是0,不过不是不能有零啊,所以最低位应该取3对应c
然后(6-3)/3=1所以第二位是1取a,所以可以得到6对应的字符串是ac,按照这样的思路就可以根据编号直接得到字符串
然后直接用strstr(主串,子串),如果找不到返回null,然后循环结束输出就好了。