Morning_X又来搞事情了。这个人他非常的喜欢彩虹。于是他做了一个彩虹制造机,希望能够造出来一个美美的彩虹给自己观赏一下。结果这个制造机喷出来的居然不是彩虹。而是一个个字母,而且这个机器居然变成了人工智障。
现在这个人工智障跟Morning_X说我现在会先喷出一个字符串A,再喷出第一个字符串之后,我会再喷出n个字符串B1,B2,……,Bn,你要在我喷出的n个字符串当中找到以A为前缀的字符串,然后将它输出,如果没有则输出A。如果你不能完成以上操作,我就不会喷出来彩虹给你看。
Morning_X最近敲代码敲傻了脑子不太好用,所以他现在拜托你们写个程序出来帮帮他吧!
注:
字符串A是字符串B的前缀当且仅当A==B或者
B=A***……** 其中*号代表任意字符
比如
abc 是 abcd,和abcde,abca的前缀,
而abc 不是ababcac的前缀
第一行是一整数T,代表有T组数据
接下来每组数据格式如下
第一行输入一个字符串s。
第二行输入一个整数n (1 ≤ n ≤ 100)
接下来n行每行输入一个字符串
字符串大小都在1到100之间,只由英文字母组成
数据组数<=200
输出前缀是字符串s的字符串,如果没有以s为前缀的字符串则输出s。如果有很多个前缀为s的,则输出字典序最小的字符串。
小知识:
字典序,顾名思义就是字典里排列单词的顺序
设想一本英语字典里的单词,何者在前何者在后?
显然的做法是先按照第一个字母、以 a、b、c……z 的顺序排列;如果第一个字母一样,那么比较第二个、第三个乃至后面的字母。如果比到最后两个单词不一样长(比如,sigh 和 sight),那么把短者排在前。
用数学语言描述就是 若a1a2a3……an小于b1b2b3……bm 当且仅当存在k<min(n,m)使得a1a2a3……an == b1b2b3……bm 且ak<bk
或者n<m且a1a2a3……an = b1b2b3……bn
例如
a,aa,ba,bb,ca,caa
就是按字典序排序的
2 next 2 nextpermutation nextelement find 4 find findfirstof findit fand
nextelement find