Lose Bereiche interpretieren
ListSharp ist eine interpretierte Programmiersprache mit vielen Funktionen. Eine dieser Funktionen ist ein auf einem Index basierender Range Creator, der folgendermaßen funktioniert:
Sie definieren einen Bereich als (INT) TO (INT)
oder genau dort, (INT)
wo beide oder der einzelne int von min bis max int32-Wert gehen können
Dann können Sie diese Bereiche verwenden, um Elemente eines Arrays zu extrahieren, ohne befürchten zu müssen, seine Grenzen zu überschreiten
deshalb:
1 TO 5
erzeugt: {1,2,3,4,5}
3
erzeugt: {3}
Bereiche können mit dem AND
Operator addiert werden
1 TO 5 AND 3 TO 6
erzeugt: {1,2,3,4,5,3,4,5,6}
Denken Sie daran, dass dies auch bei negativen Zahlen funktioniert
3 TO -3
erzeugt: {3,2,1,0,-1,-2,-3}
Die Herausforderung ist folgende:
Eingang
Ein Zeichenarray und die zuvor definierte Range-Klausel als Zeichenfolge
Ausgabe
Die Elemente an den 1 indexbasierten Positionen des Bereichs (nicht vorhandene / negative Indizes werden in ein leeres Zeichen übersetzt)
Wie gewinnt man
Als Code-Golf- Herausforderung soll das Programm mit der kürzesten Anzahl von zu gewinnenden Bytes erstellt werden
Es wurde darauf hingewiesen, dass leere Zeichen nicht existieren, deshalb sollten Sie sie ignorieren (ich habe sie hier nur gezeigt, um das Verständnis zu erleichtern, aber es verwirrt die Leute).
Testfälle:
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
jemals ein Input sein und was ist der erwartete Output?
AND
Mehrfachbereiche. Sie haben auch nicht geantwortet, ob wir eine auf Null basierende Indizierung verwenden können, die in den meisten Sprachen Standard ist.
"0 TO 2"
=>{'H', 'e', 'l'}
?