变位词

变位词

简单

简介

在一场旧货出售上,你以超低的价格淘到了一台漂亮的复古打字机!你兴奋地跑回家,塞进一张纸,就开始噼里啪啦地打字。可当你查看输出时,兴奋劲儿却一下子没了:所有单词都乱了套!比如,它打印出的不是 “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"。

实现

这些变位词可以按任意顺序返回。

通过 GitHub 编辑 链接将在新窗口或新标签页中打开
TypeScript Exercism

准备好开始 变位词 了吗?

注册 Exercism,借助 108 个练习 和真人导师指导,学习并掌握 TypeScript,全部免费。