什么是一种简单的方法来判断一个单词列表是否是彼此的字谜?

jqs*_*jqs 7 language-agnostic string anagram

你如何列出彼此字谜的单词?

当我申请当前的工作时,我被问到了这个问题.

orchestra可以将carthorse所有原始字母重新排列成一次,因此这些单词是彼此的字谜.

Ada*_*vis 22

将所有字母按字母顺序排列在字符串中(排序算法),然后比较结果字符串.

-亚当


Fra*_*nov 10

好的事情我们都生活在C#现实中,在具有oozles内存的四核机器上就短字进行就地排序.:-)

但是,如果您碰巧受到内存限制并且无法触及原始数据,并且您知道这些单词包含来自ASCII表格下半部分的字符,那么您可以使用不同的算法来计算每个字母中每个字母的出现次数.单词而不是排序.

如果你想在O(N)中执行它并且不关心内存使用(每个Unicode char的计数器可能非常昂贵),你也可以选择该算法.


Cod*_*ous 6

对每个元素进行排序(删除空格)并与之前的元素进行比较.如果他们都是一样的话,他们都是字谜.