Interpretuj luźne zakresy
ListSharp to interpretowany język programowania, który ma wiele funkcji, jedną z nich jest kreator zasięgu oparty na indeksie 1, który działa w następujący sposób:
Definiujesz zakres jako (INT) TO (INT)
lub tylko (INT)
tam, gdzie oba lub pojedyncze int mogą przejść od wartości minimalnej do maksymalnej wartości int32
Następnie możesz użyć tych zakresów, aby wyodrębnić elementy tablicy bez obawy przekroczenia jej granic
w związku z tym:
1 TO 5
generuje: {1,2,3,4,5}
3
generuje: {3}
Zakresy można dodawać za pomocą AND
operatora
1 TO 5 AND 3 TO 6
generuje: {1,2,3,4,5,3,4,5,6}
pamiętaj, że działa to również z liczbami ujemnymi
3 TO -3
generuje: {3,2,1,0,-1,-2,-3}
Wyzwanie jest następujące:
Wejście
Tablica znaków i poprzednio zdefiniowana klauzula zakresu jako ciąg
Wynik
Elementy w lokalizacjach zakresu na podstawie 1 indeksu (nieistniejące / ujemne indeksy tłumaczą się na pusty znak)
Jak wygrać
Jako wyzwanie do gry w golfa musisz stworzyć program z jak najmniejszą liczbą bajtów do wygrania
Podkreślono, że puste postacie nie istnieją, dlatego należy je ignorować (pokazałem je tutaj tylko po to, aby ułatwić ich zrozumienie, ale pomieszały ludzi)
Przypadki testowe:
input array is:
{'H','e','l','l','o',' ','W','o','r','l','d'}
range clause:
"1 TO 3" => "Hel"
"5" => "o"
"-10 TO 10" => "Hello Worl"
"0 AND 2 AND 4" => "el"
"8 TO 3" => "oW oll"
"-300 AND 300" => ""
"1 TO 3 AND 3 TO 1" => "HelleH"
"-20 TO 0 AND 1 AND 4" => "Hl"
3 TO 3
Kiedykolwiek będzie wejściem i jakie jest oczekiwane wyjście?
AND
generowania wielu zakresów. Ponadto nie odpowiedziałeś, czy możemy korzystać z indeksowania zerowego, co jest standardem w większości języków.
"0 TO 2"
=>{'H', 'e', 'l'}
?