Java字谜查找算法
我有一个Java中的Java字谜查找算法,java,arrays,sorting,anagram,Java,Arrays,Sorting,Anagram,我有一个Java中的字符串数组。我需要从数组中找到字谜并打印到屏幕上 我在比较数组元素以检查它们是否为字谜的部分遇到了困难。我该怎么做?显然,我需要做一个循环来遍历数组 我想我可以对字符串s进行排序,然后比较它们(因为如果它们是字谜,排序时它们将以相同的顺序包含相同的字母),但是我该如何将它们分解才能得到原始单词呢?你可以使用一个映射,将一个有序的字符串映射到一个数组索引集合,数组索引是有序的字符串的anagram如果你对字母进行字母排序而不是散列,它们应该是相同的 Map<String,
字符串数组。我需要从数组中找到字谜并打印到屏幕上
我在比较数组元素以检查它们是否为字谜的部分遇到了困难。我该怎么做?显然,我需要做一个循环来遍历数组
我想我可以对字符串
s进行排序,然后比较它们(因为如果它们是字谜,排序时它们将以相同的顺序包含相同的字母),但是我该如何将它们分解才能得到原始单词呢?你可以使用一个映射,将一个有序的字符串映射到一个数组索引集合,数组索引是有序的字符串的anagram如果你对字母进行字母排序而不是散列,它们应该是相同的
Map<String, List<String>> words = new HashMap<String, List<String>>();
for(String word : incomingWords) {
final String key = alphabetize(word);
if(words.contains(key)){
words.get(key).add(word);
} else {
words.put(key, new ArrayList<String>());
words.get(key).add(word);
}
}
Map words=newhashmap();
for(字符串字:incomingWords){
最终字符串键=按字母顺序排列(单词);
if(单词.包含(键)){
words.get(key)、add(word);
}否则{
words.put(key,newarraylist());
words.get(key)、add(word);
}
}
现在你有了Map
的字谜词。。。你还可以在地图中找到只有一个条目的列表,你可以从地图中删除这些条目,只保留字典中其他字谜的地图。刚刚与亚马逊进行了电话采访,这正是他们问的问题。如果你有超过10分钟的时间来解决这个有趣的问题。