我应该用 JavaScript 编写一个程序来查找所提供的一系列单词中的所有字谜。例如。:
monk, konm, nkom, bbc, cbb, dell, ledl, llde
输出应分为几行:
1. monk konm, nkom;
2. bbc cbb;
3. dell ledl, llde;
我已经将它们按字母顺序排序并将它们放入一个数组中。 IE。:
kmno kmno bbc bbc dell dell
然而,我一直在比较和寻找数组中匹配的字谜。
任何帮助将不胜感激。
Javascript 对象非常适合此目的,因为它们本质上是键/值存储:
// Words to match
var words = ["dell", "ledl", "abc", "cba"];
// The output object
var anagrams = {};
for (var i in words) {
var word = words[i];
// sort the word like you've already described
var sorted = sortWord(word);
// If the key already exists, we just push
// the new word on the the array
if (anagrams[sorted] != null) {
anagrams[sorted].push(word);
}
// Otherwise we create an array with the word
// and insert it into the object
else {
anagrams[sorted] = [ word ];
}
}
// Output result
for (var sorted in anagrams) {
var words = anagrams[sorted];
var sep = ",";
var out = "";
for (var n in words) {
out += sep + words[n];
sep = "";
}
document.writeln(sorted + ": " + out + "<br />");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)