2011-09-04 3 views
0

J'ai un tableau de mots, j'ai besoin de savoir combien de mots chaque lettre montre po Le nombre de fois par mot n'a pas d'importance, seulement le nombre de mots .Comptez rapidement combien de mots une lettre apparaît dans

J'ai seulement besoin de vérifier a-z, mais comme le tableau de mots peut être assez grand (plus de 100 000) à la fois, 26 itérations à travers toute la boucle prendront beaucoup trop de temps pour cela.

Quel est un moyen plus rapide de vérifier cela? 260 000 boucles est beaucoup trop pour cela.

Répondre

2

Vous devez parcourir tous les mots, vous pouvez utiliser count_chars pour vous donner toutes les lettres uniques utilisées dans chaque mot rapidement ... mais à part cela, il n'y a pas grand-chose à faire. Vous pouvez soit tester toutes les lettres contre un mot str_split et array_unique, ou vous pouvez diviser le mot en lettres et trouver les uniques count_chars.

EDIT: Si vous recherchez une performance absolue, il vous suffit d'essayer toutes les combinaisons possibles. Du point de vue algorithmique, il n'y a pas grand-chose à faire si vos données sont dynamiques ou "inconnues".

+0

Id également aller avec la fonction array_filter comme une option, mais je pense que ce serait la même performance que juste en boucle à travers chaque mot. – Ugleh

Questions connexes