问题 25815. -- 【排序】字母重排(reset)

25815: 【排序】字母重排(reset)

时间限制: 1 Sec  内存限制: 128 MB
献花: 0  解决: 0
[献花][花圈]

题目描述

    输入一个字典(用*******结尾),然后再输入若于单词。每输入一个单词w,你需要在字典中找出所有可以用w的字母重排后得到的单词,并按照字典序从小到大的顺序在一行中输出(如果不存在,输出:()。输入单词之间用空格或空行隔开,且所有输入单词都不超过6个小写字母组成。注意,字典中的单词不一定按字典序排列。

输入

    一行或多行,首先是若干单词组成的字典(不超过2000个单词),单词之间用空格或空行隔开;接着是“*******”,表示字典的结束;最后是不超过2000个单词,单词之间用空格或空行隔开。

输出

    多行,按单词的输入顺序输出,在字典中找出所有可以用该单词的字母重排后得到的单词,并按照字典序(指通常的英文字典序)从小到大的顺序在一行中输出,如果不存在,输出:(。

样例输入

tarp given score refund only trap work earn course pepper part
******
resco nfudre aptr sett oresuc

样例输出

score
refund
part tarp trap
:(
course

提示


提示:需要把字典读入并保存下来。

(1)每读入一个单词,就和字典中的所有单词比较,看看是否可以通过重排得到。

(2)把可以重排得到的单词放在一个数组中。

(3)把这个数组排序后输出。

来源

[献花][花圈]