Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 字生成器算法?_Algorithm_Word_Generator - Fatal编程技术网

Algorithm 字生成器算法?

Algorithm 字生成器算法?,algorithm,word,generator,Algorithm,Word,Generator,我是新来的。如果可能的话,我想要一些帮助 我想一个算法,计算出一个单词列表后,你输入字母可用和字长。我在我的网站上添加了一个Draw-Something解决方案部分。我是一个Web开发人员,对XHTML、CSS和一些JS有着广泛的了解,但这一切都是我所能做到的,我不认为没有使用更强大的功能,比如Python或C++(< P>),可以在浏览器中运行: vocabulary = ['start', 'tarts', 'stars', 'rats', 'tears'] // ...etc. read

我是新来的。如果可能的话,我想要一些帮助


我想一个算法,计算出一个单词列表后,你输入字母可用和字长。我在我的网站上添加了一个Draw-Something解决方案部分。我是一个Web开发人员,对XHTML、CSS和一些JS有着广泛的了解,但这一切都是我所能做到的,我不认为没有使用更强大的功能,比如Python或C++(

< P>),可以在浏览器中运行:

vocabulary = ['start', 'tarts', 'stars', 'rats', 'tears']  // ...etc. read from a file

function letters(word) {
    return word.split('');
}

function possibleWords(length, allowedLetters) {
    var isAllowedLetter = function(letter) {
        return allowedLetters.indexOf(letter) != -1;  // allowedLetters contains letter
    };
    return vocabulary.filter(function(word) {
        return word.length==length && letters(word).every(isAllowedLetter);
    })
}
演示:


要提高效率,请执行以下操作:

vocabulary = ['start', 'tarts', 'stars', 'rats', 'tears']  // ...etc. read from a file

function letters(word) {
    return word.split('');
}

function set(iterable) {
    var data = {};
    iterable.forEach(function(x) {
        data[x] = true;
    });
    return {
        contains: function(x) {
            return !(data[x]===undefined);
        }
    };
}

function possibleWords(length, allowedLetters) {
    var isAllowedLetter = allowedLetters.contains;
    return vocabulary.filter(function(word) {
        return word.length==length && letters(word).every(isAllowedLetter);
    })
}
演示:


JavaScript可以做到这一点,它是一种成熟的编程语言。
vocabulary = ['start', 'tarts', 'stars', 'rats', 'tears']  // ...etc. read from a file

function letters(word) {
    return word.split('');
}

function set(iterable) {
    var data = {};
    iterable.forEach(function(x) {
        data[x] = true;
    });
    return {
        contains: function(x) {
            return !(data[x]===undefined);
        }
    };
}

function possibleWords(length, allowedLetters) {
    var isAllowedLetter = allowedLetters.contains;
    return vocabulary.filter(function(word) {
        return word.length==length && letters(word).every(isAllowedLetter);
    })
}
> possibleWords(5, set(['s','t','a','r']))
["start", "tarts", "stars"]