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

假设我有一个类似的列表

狗 狗 上帝 狗 狗 斑马 木材

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

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

【问题讨论】:

    标签: javascript jquery string anagram


    【解决方案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/>");
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2010-10-28
      • 2016-03-18
      • 2013-01-11
      • 2022-01-21
      • 2019-07-07
      • 2011-02-07
      • 2012-07-22
      • 2013-09-20
      • 2012-09-10
      相关资源
      最近更新 更多