【发布时间】:2016-11-10 14:27:06
【问题描述】:
字谜是由另一个单词通过重新排列其字母而形成的单词,所有原始字母仅使用一次;例如,管弦乐队可以重新排列成carthorse。
我想编写一个函数以任何顺序返回给定单词(包括单词本身)的所有字谜。
例如GetAllAnagrams("abba") 应该返回一个包含"aabb", "abab", "abba", "baab", "baba", "bbaa" 的集合。
任何帮助将不胜感激。
【问题讨论】:
-
使用 Nuget 包组合:nuget.org/packages/Combinatorics - 但这些不是单词,如果你想要真正的“字谜”,你也需要一本字典
-
向我们展示您的代码。
-
根据@IanMercer 的评论,您的符号有点偏离。 “单词”通常不仅仅是字母的任何组合,而且特别是在特定语言(或任何语言)中具有意义的组合。提出问题的更好方法是“列出可以使用输入字符生成的所有唯一字符串的集合”,我在下面提供的解决方案就是这样做的。