在这个问题中,我正在寻找一种优雅的(ruby)方式来计算这个答案中建议的单词签名。
建议的想法是对单词中的字母进行排序,并且对重复的字母进行运行长度编码。例如,“mississippi”首先变成“iiiimppssss”,然后可以进一步缩短为“4impp4s”。
我相对较新于ruby,虽然我可以将某些东西捆绑在一起,但我相信这对于有更多ruby经验的人来说只是一个一行代码。我很想看到人们的方法并提高我的ruby知识。
编辑:澄清一下,计算签名的性能对于我的应用程序并不重要。我正在寻找计算签名以便将其与大型单词数据库中的每个单词一起存储,然后查询具有相同签名的单词(即给定单词的所有变位词,实际上是英语单词)。因此,重点在于空间。 "优雅"部分只是为了满足我的好奇心。
/usr/dict/words
)? - Norman Ramsey