我是该网站的新手。如果可能的话,希望得到一些帮助。
我想要一种算法,在您输入可用字母和单词长度后计算单词列表。我正在向我的网站添加一个 Draw Something 解决方案部分。我是一名网络开发人员,对 XHTML、CSS 和一些 JS 有丰富的知识,但仅此而已,我认为如果不使用更强大的东西(如 python 或 C++)就无法做到这一点?
在 javascript 中,可在浏览器中运行:
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);
})
}
演示:
> possibleWords(5, ['s','t','a','r'])
["start", "tarts", "stars"]
为了提高效率,您可以:
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"]