Локатор номерів кімнати
Я натрапив на цікаву техніку вирішення проблем на своїй роботі, коли дали колегу на зустріч неправильний номер кімнати. Раз у раз, перебуваючи на шляху до зустрічі, член моєї команди надсилає мені неправильний номер кімнати, як правило, тому, що вони поспішають за своїм столом і товстим пальцем неправильну клавішу.
Цікаво, що після прибуття в неправильну кімнату я зазвичай здогадуюсь, яку кімнату вони мали на увазі, уявляючи цифрову клавіатуру :
![]()
і відгадуючи сусіднє число, яке вони мали на меті натиснути.
Виклик
Ваше завдання полягає в тому, щоб написати функцію, яка приймає номер будівельного офісу (000-999) та видає можливі друкарські рішення, припускаючи , що ваш колега вводить лише одну цифру.
Наступна таблиця показує, які цифри сусідять один з одним на цифровій клавіатурі:
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
Вхідні дані
Ряд 3 цифри: 000-999. Припустимо введення рівно 3 цифр. Якщо число менше 100 або менше 10, то вам дадуть провідні нулі. (тобто 004 та 028).
Вихід
Список можливих номерів. Це може бути в будь-якій бажаній формі, якщо між номерами номерів є роздільник. . (тобто 004 може бути 004 04 4, і 028 може бути 028 28)
Тестові випадки (провідні нулі необов’язково):
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
Це код-гольф , тому найкоротший код у байтах для кожної мови виграє.
933таким, що я це виправив.
