Defenestracja polega na wyrzuceniu kogoś lub czegoś przez okno.
- Wikipedia
Wkład
Dane wejściowe będą się składały z dwóch części:
Plan piętra i osoba w domu / budynku.
v><^
przedstawia osobę wskazującą kierunek wskazany przez strzałkę. Dane wejściowe będą zawierać dokładnie jedną osobę.-
i|
reprezentują ściany i#
reprezentują okno.
Ta część danych wejściowych może być traktowana jako pojedynczy ciąg znaków lub tablica / lista / itd. linii. Nigdy nie będzie żadnych spacji końcowych ani wiodących, a wejście zawsze będzie prostokątem.
Przykład:
-----###--- | | | ^ | -----------
Liczba całkowita ≥ 1 oznaczająca, jak daleko (w znakach) osoba podróżuje.
Wydajność
Wyjście powinno być
1
jeśli dana osoba znajdzie się „wewnątrz” okna (tj. po przesunięciu się do przodu o określoną w danych wejściowych odległość, osoba znajduje się nad a#
).2
jeśli dana osoba została zdefestytowana (wejdź w kontakt z#
a następnie kontynuuj dalej).3
jeśli osoba ma trafić do ściany (stykać się z-
lub|
. Po uderzeniu w ścianę, osoba zatrzyma się i nie kontynuuje się przez niego).0
jeśli żadne z powyższych nie jest prawdą (a wszystko, co zrobiła osoba, to podróż przez pustą przestrzeń).
Założenia
Można spełnić wszystkie poniższe warunki:
Osoba nigdy nie będzie podróżować „poza granicami” obszaru wejściowego.
Po defenestrated osoba nigdy nie wejdzie w kontakt z innym
#
lub-
/|
(więc nie trzeba się martwić o tym, czy2
i1
czy3
są zarówno prawdziwe).
Przypadki testowe
Dla następującego „planu piętra”:
-----
| |
|###|
| |
| ^ |
In Out
1 0
2 1
3 2
Dla tego planu piętra:
> | # |
In Out
1 0
2-99 3 * that is, any input 2-99 outputs 3
Dla tego planu piętra:
||####|#|#|##|<
In Out
any 3
Ostateczny przypadek testowy:
|v|
|#|
| |
| |
| |
| |
In Out
1 1
2-5 2
Has someone been for-sparta'd?
Odpowiedzi:
JavaScript (ES6),
147146 bajtówZapisano 1 bajt dzięki @NinjaBearMonkey !
Wyjaśnienie
Pobiera plan piętra jako ciąg znaków i liczbę ruchów. Zwraca liczbę.
Test
Pokaż fragment kodu
źródło