Lokalizator numeru pokoju
W mojej pracy natrafiłem na interesującą technikę rozwiązywania problemów, gdy otrzymałem niewłaściwy numer pokoju od kolegi na spotkanie. Od czasu do czasu, w drodze na spotkanie, członek mojego zespołu wysyła mi niewłaściwy numer pokoju, zwykle dlatego, że śpieszy się za biurkiem i grubym palcem niewłaściwy klucz.
Co ciekawe, po przybyciu do niewłaściwego pokoju zazwyczaj mogę odgadnąć, który pokój naprawdę mieli na myśli, wyobrażając sobie klawiaturę numeryczną :
![]()
i zgadując sąsiedni numer, zamierzali nacisnąć.
Wyzwanie
Wyzwanie polega na napisaniu funkcji, która pobierze numer biura budynku (000-999) i wyświetli możliwe rozwiązania literówek, zakładając , że kolega pomyli się tylko jedną cyfrę.
Poniższa tabela pokazuje, które numery sąsiadują ze sobą na klawiaturze numerycznej:
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
Wkład
Szereg 3 cyfra: 000-999. Załóżmy, że wprowadzono dokładnie 3 cyfry. Jeśli liczba jest mniejsza niż 100 lub mniejsza niż 10, otrzymasz wiodące zera. (tj. 004 i 028).
Wydajność
Lista możliwych pokoi. Może to być dowolna forma, pod warunkiem, że pomiędzy numerami pokojów znajduje się ogranicznik. (tj. spacja, przecinek, nowa linia itp.) Jeśli liczba jest mniejsza niż 100 lub mniejsza niż 10, możesz mieć początkowe zera jako wyjściowe lub nie, to zależy od ciebie. (tzn. 004 może być 004 04 4, a 028 może być 028 28)
Przypadki testowe (zera wiodące są opcjonalne):
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
To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach dla każdego języka.
933więc naprawiłem to.
