Localisateur de numéro de chambre
Je suis tombé sur une technique de résolution de problèmes intéressante à mon travail quand on m'a donné le mauvais numéro de chambre d'un collègue pour une réunion. De temps en temps, alors que je me rends à une réunion, un membre de mon équipe m'envoie le mauvais numéro de chambre, généralement parce qu'il est pressé à son bureau et qu'il a la grosse clé du mauvais doigt.
Fait intéressant, à mon arrivée dans la mauvaise pièce, je peux généralement deviner de quelle pièce il s'agissait vraiment en imaginant un pavé numérique :
![]()
et en devinant un nombre adjacent, ils voulaient appuyer.
Défi
Votre défi consiste à écrire une fonction qui prend un numéro de bureau de bâtiment (000-999) et génère les solutions de faute de frappe possibles, en supposant que votre collègue ne tape qu'un chiffre.
Le tableau suivant montre quels numéros sont adjacents les uns aux autres sur un pavé numérique:
0 -> 1,2
1 -> 0,2,4
2 -> 0,1,3,5
3 -> 2,6
4 -> 1,5,7
5 -> 2,4,6,8
6 -> 3,5,9
7 -> 4,8
8 -> 5,7,9
9 -> 6,8
Contribution
Un numéro à 3 chiffres: 000-999. Supposons une entrée d'exactement 3 chiffres. Si le nombre est inférieur à 100 ou inférieur à 10, vous recevrez les zéros de tête. (c.-à-d. 004 et 028).
Sortie
Une liste des chambres possibles. Cela peut prendre la forme que vous souhaitez, tant qu'il y a un délimiteur entre les numéros de pièce. (c.-à-d. espace, virgule, nouvelle ligne, etc.). Si le nombre est inférieur à 100 ou inférieur à 10, vous pouvez ou ne pouvez pas avoir les zéros de tête en sortie, cela dépend de vous. (c.-à-d. 004 peut être 004 04 4et 028 peut être 028 28)
Cas de test (les zéros en tête sont facultatifs):
008 -> 108, 208, 018, 028, 005, 007, 009
123 -> 023, 223, 423, 103, 113, 133, 153, 122, 126
585 -> 285, 485, 685, 885, 555, 575, 595, 582, 584, 586, 588
777 -> 477, 877, 747, 787, 774, 778
963 -> 663, 863, 933, 953, 993, 962, 966
555 -> 255, 455, 655, 855, 525, 545, 565, 585, 552, 554, 556, 558
Il s'agit de code-golf , donc le code le plus court en octets pour chaque langue l'emporte.
933donc je l'ai corrigé.
