【发布时间】:2014-11-01 03:04:00
【问题描述】:
我有一个包含多个单词的数组。问题是让我找到那里的所有字谜,并挑选出哪个字谜最多。这是我目前所拥有的:
- 创建旧数组的重复数组。
- 为旧数组创建一个索引数组,以跟踪每个单词的位置。此索引值不会在整个程序中更改
- 对于新数组,我将对数组中的每个单词进行排序。
例如:在排序前,数组有:[cat dog tac god act] 那么在排序之后,就会有[act dgo act dgo act]
- 对数组中的单词进行排序,然后数组现在将有:[act act act dgo dgo]。现在我们可以看到所有的字谜都聚集在一起了,但是新数组中的顺序发生了变化。
- 在索引数组中使用以跟踪旧数组中单词的顺序。
这种方法似乎不错,但它取决于我在原始数组中的单词数。如果我的原始数组足够大,它可能会由于复制过程而减慢程序。此外,我无法跟踪每个单词有多少字谜。考虑到数组很大并且程序必须快速找到所有字谜,解决这类问题的最佳方法是什么?任何帮助将不胜感激。谢谢。
【问题讨论】:
标签: objective-c anagram