查找字谜 JavaScript jQuery

Posted

技术标签:

【中文标题】查找字谜 JavaScript jQuery【英文标题】:Find anagrams JavaScript jQuery 【发布时间】:2011-12-07 10:21:56 【问题描述】:

假设我有一个类似的列表

狗 狗 上帝 狗 狗 斑马 木材

我想要做的是找到列表中的所有单词,不管大小写,或者不管实际单词。我想匹配字母并数一数。所以从上面

Dog, dOg, God 都是匹配项,在这种情况下将返回“3”作为计数,但 doggy、dogg、zebra、wood.. 都是唯一的,并且都将返回 1 作为计数。虽然我知道这是可能的,但我不知道从哪里开始。字谜概念让我有点失望。有什么想法吗?

【问题讨论】:

【参考方案1】:
var words = new Array("Dog", "dOg", "God", "doggy", "dogg","Zebra", "Wood");
var unique = ;

// iterate over all the words
for (i=0; i < words.length; i++) 

    // get the word, all lowercase
    var word = words[i].toLowerCase();

    // sort the word's letters
    word = word.split('').sort().join('')

    // keep a count of unique combinations
    if(unique[word])
        unique[word] += 1;
    else
        unique[word] = 1;


// print the histogram
for (u in unique)
    document.write(u + ": " + unique[u] + "<br/>")

【讨论】:

new answer has appeared 栏出现时我讨厌它,它是您所写内容的完整版本。好答案+1 我也是。 :) 太令人沮丧了。 看起来我们都在想同样的事情......哈哈【参考方案2】:

这就是我想出的...jsfiddle here

$(document).ready(function() 
    var mywords = ['Dog', 'dOg', 'God', 'doggy', 'dogg', 'Zebra', 'Wood'];
    var finalArr = ;

    for (var i = 0; i < mywords.length; i++) 
        var temp = mywords[i].toLowerCase();
        var letters = temp.split('');
        var sorted = letters.sort();
        var final = sorted.join("");
        if(typeof finalArr[final] != 'undefined')
            finalArr[final] ++;
         else 
            finalArr[final] = 1;
        
    
    console.log(finalArr);
    for(var i in finalArr) 
        alert(i + ': ' + finalArr[i]);
        document.write(i + ': ' + finalArr[i] + "<br/>");
    
);

【讨论】:

以上是关于查找字谜 JavaScript jQuery的主要内容,如果未能解决你的问题,请参考以下文章

查找字谜 JavaScript jQuery

在 Javascript 中使用 Map 从一组字谜中查找唯一单词

javascript [438。查找字符串中的所有字谜] #tags:leetcode

查找单词字谜数量的算法?

正则表达式 - 查找字谜和子字谜

查找给定单词的字谜