PHP从数组中选择10个10个字母的单词,受字符池限制

时间:2015-02-08 12:03:11

标签: php arrays

这个问题可能更适合编码高尔夫,但我想我会先尝试一下。

我有一个包含20,302个10个字母单词的数组:http://pastebin.com/NfzFiS92

我想知道如何从阵列中选择10个单词,受Scrabble字符的限制。哪个是......

9x A

2x B

2x C

4x D

12x E

2x F

3x G

2x H

9x I

1x J

1x K

4x L

2x M

6x N

8x O

2x P

1x Q

6x R

4x S

6x T

4x U

2x V

2x W

1x X

2x Y

1x Z

2x空白

1 个答案:

答案 0 :(得分:1)

定义您的拼字游戏字母频率,如下所示:

$freqs = array(
"a"=>9,
"b"=>2,
"c"=>2,
...
);

然后你可以构建一个函数canBuild:

function canBuild($word){
    global $freqs;
    $temp = $freqs;
    for($i=0;$i<strlen($word);$i++){
        $letter = strtolower($word[$i]);
        if($temp[$letter]>0){
            $temp[$letter]--;
        }else{
            return false;
        }
    }
    $freqs = $temp;
    return true;
}

从这里迭代你的单词数组然后你喜欢并收集通过canBuild测试的前10次遇到。