Localizador de número de habitación
Me encontré con una técnica interesante para resolver problemas en mi trabajo cuando un colega me dio el número de sala equivocado para una reunión. De vez en cuando, mientras se dirige a una reunión, un miembro de mi equipo me enviará el número de habitación equivocado, generalmente porque están apurados en su escritorio y presionan la tecla equivocada.
Curiosamente, al llegar a la habitación equivocada, normalmente puedo adivinar a qué habitación se referían realmente imaginando un teclado numérico :
![]()
y al adivinar un número adyacente pretendían presionar.
Reto
Su desafío es escribir una función que tome un número de oficina del edificio (000-999) y genere las posibles soluciones de error tipográfico, suponiendo que su colega solo escriba mal un dígito.
La siguiente tabla muestra qué números son adyacentes entre sí en un teclado numérico:
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
Entrada
Un número de 3 dígitos: 000-999. Suponga la entrada de exactamente 3 dígitos. Si el número es menor que 100 o menor que 10, se le darán los ceros iniciales. (es decir, 004 y 028).
Salida
Una lista de posibles habitaciones. Esto puede ser de la forma que desee, siempre que haya un delimitador entre los números de habitación. (es decir, espacio, coma, nueva línea, etc.) Si el número es menor que 100 o menor que 10, puede o no tener los ceros iniciales como salida, eso depende de usted. (es decir, 004 puede ser 004 04 4, y 028 puede ser 028 28)
Casos de prueba (los ceros iniciales son opcionales):
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
Este es el código de golf , por lo que gana el código más corto en bytes para cada idioma.
933así que lo arreglé.
