在一场旧货出售上,你以超低的价格淘到了一台漂亮的复古打字机!你兴奋地跑回家,塞进一张纸,就开始噼里啪啦地打字。可当你查看输出时,兴奋劲儿却一下子没了:所有单词都乱了套!比如,它打印出的不是 “post” 而是 “stop”,不是 “stale” 而是 “least”。你小心翼翼地又试了一次,这回它打印出的却是 “spot” 和 “slate”。经过一番摸索,你发现每个字母被打印出来之前都有一段随机延迟,正是它打乱了顺序。这下你明白了,难怪它卖得这么便宜!
你意识到,这个毛病恰好能用来生成变位词,也就是把另一个单词的字母重新排列后组成的单词。你对自己的发现很满意,于是用这一天剩下的时间生成了数百个变位词。
你的任务是:给定一个目标单词和一组候选词,找出其中所有是目标单词变位词的那些候选词。
变位词是指把字母重新排列,组成一个新单词:例如 "owns" 是 "snow" 的变位词。
一个单词_不是_它自己的变位词:例如,"stop" 不是 "stop" 的变位词。
目标单词和候选词都是由一个或多个 ASCII 字母字符(A-Z 和 a-z)组成的单词。
小写字母和大写字母是等价的:例如,"PoTS" 是 "sTOp" 的变位词,但 StoP 不是 sTOp 的变位词。
变位词集合是候选集合中所有目标单词变位词组成的子集(顺序不限)。
变位词集合中的单词应与候选集合中的单词保持相同的大小写。
给定目标单词 "stone" 和候选词 "stone"、"tones"、"banana"、"tons"、"notes"、"Seton",变位词集合是 "tones"、"notes"、"Seton"。
你必须按照候选单词中列出的顺序返回各个变位词。