2015-02-08 47 views
0

这个问题可能更适合编码高尔夫,但我想我会先在这里尝试。PHP从数组中选择10个10字母单词,受字符池限制

我有在它20302个10字母的单词的数组:http://pastebin.com/NfzFiS92

我想知道如何将能够从阵列,由拼字游戏字符的限制选择10个字。这是...

9x使用

2X乙

2XÇ

4X d

12倍ê

2X˚F

3倍摹

2Xħ

9X我

1XĴ

1Xķ

4X大号

2X中号

6XÑ

8Xö

2×P

1X Q

6Xř

4X小号

6XŤ

4Xù

2×V

2×w^

1X X

2XŸ

1Xž

2个空白

+0

是的,试试codegolf。在这里你需要展示你迄今为止所做的事情...... – rjdown 2015-02-08 12:10:45

回答

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次匹配。

相关问题