Bonjour à tous.
Je ne sais si je suis sur la bonne section, et si je peux me permettre de faire ça, mais voila :
J'ai eu dernièrement un entretien technique avec une grosse boîte d'informatique. Et manifestement, ça ne s'est pas très bien passé, vu que je n'ai pas été retenu. Sauf que la boîte n'a pas été claire sur la raison de son refus, et ça me travaille. Je me demande si c'est du à une erreur purement technique ou à une raison autre. Donc, je voulais vous présenter l'exercice principal de cette entrevue histoire de comparer notre manière de le résoudre. C'est un classique, donc je pense que vous devriez aisément trouver un algorithme pour le résoudre.

Donc, en entrée, on a un tableau de caractères. Exemple (pas facile à aligner, désolé) :
s
h
e d
lla
bo

Vous avez soit des lettres, soit des espaces. Le but est de faire des mots en parcourant le tableau (à la boggle). Par exemple, sur ce tableau au dessus, on peut faire hello, shell, all. En gros, on parcoure le tableau de case en case en haut, bas, droite ou gauche (pas de diagonales) sans passer par un espace jusqu'à ce que ça forme un mot. On a le droit de revenir sur une case par laquelle on est passé.
De même, on a un dictionnaire qui est donné. Donc, pas besoin de le coder, il suffit juste de préciser l'interface pour l'utiliser.
Le but est de coder l'algorithme qui permette de trouver tous les mots faisables, et d'en donner la complexité.

Donc, puis je vous demander de l'aide pour trouver le(s) meilleur(s) algo(s) pour le résoudre, et ainsi dissiper ce doute qui m'assaille ?

PS : S'il existe une section plus appropriée, n'hésitez pas à déplacer le sujet.