Biorąc pod uwagę ciąg znaków s
i liczbę nieujemną n
mniejszą niż długość s
, wypisz znak na n
-tą pozycję s
.
Dozwolone jest indeksowanie 0 i indeksowanie 1. Dla 1-indeksowania n
będzie dodatnia i mniejsza lub równa długości s
.
s
będzie się składać wyłącznie z drukowalnych znaków.
Wszelkie uzasadnione wejścia / wyjścia są dozwolone. Obowiązują standardowe luki .
Testcases (indeksowanie 0):
n s output
0 "abcde" a
1 "abcde" b
2 "a != b" !
3 "+-*/" /
4 "314159" 5
Testcases (1-indeksowanie):
n s output
1 "abcde" a
2 "abcde" b
3 "a != b" !
4 "+-*/" /
5 "314159" 5
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Odpowiedzi:
MATL , 1 bajt
Wypróbuj online!
Trudno to uprościć.
)
indeksuje pierwsze wejście, używając drugiej wartości wejściowej. Jest to indeks 1.źródło
Alice , 5 bajtów
Wypróbuj online!
Jak zwykle jest o wiele krótszy, jeśli unikniemy trybu porządkowego i użyjemy fatalnego formatu wejściowego. W tym przypadku punkt kodowy pierwszego znaku jest używany jako wejście liczby całkowitej . Pozostała część danych wejściowych to ciąg znaków. Indeks jest oparty na 1.
Wyjaśnienie
źródło
abysmal
- Myślałem, że udało ci się xDPython, 15 bajtów
lub
Oba pobierają 2 argumenty: ciąg i indeks. 0-indeksowane.
źródło
Haskell, 4 bajty
Indeksowanie na podstawie 0. Przykład użycia:
(!!) "Hello" 1
->'e'
.źródło
Oktawa, 10 bajtów
Bierze ciąg
s
i liczbęn
jako dane wejściowe i zwracan
znak th zs
.źródło
Retina ,
282019 bajtówZaoszczędź 8 bajtów dzięki @MartinEnder, nie używając grup bilansujących
Zapisano 1 bajt dzięki @ mbomb007, używając
^.+
zamiast^\d+
Wypróbuj online!
Program ma indeks 0.
źródło
\d
aby.
zapisać bajt.05AB1E , 1 bajt
0-indeksowane.
Wypróbuj online!
źródło
Alice , 10 bajtów
Wypróbuj online!
Oczekuje ciągu w pierwszym wierszu i indeksu opartego na 0 w drugim wierszu.
Wyjaśnienie
Pomimo bogactwa wbudowanych indeksów łańcuchów w Alice nie istnieje. Powodem jest to, że wymaga zarówno liczby całkowitej, jak i parametru ciągu, a wszystkie polecenia w Alice są ściśle liczbami całkowitymi do liczb całkowitych lub ciągów do ciągów.
Zasadniczo głównym sposobem wykonywania dowolnych operacji na ciągach znaków, które wymagają lub skutkują liczbami całkowitymi, jest przechowywanie łańcucha na taśmie w trybie porządkowym, którym można następnie manipulować liczbami całkowitymi w trybie kardynalnym.
źródło
Galaretka , 1 bajt
Wypróbuj online!
źródło
Prolog (SWI) ,
4037 bajtówWypróbuj online!
źródło
Brachylog , 2 bajty
Wypróbuj online!
Wyjaśnienie
∋
ujednolica dane wyjściowe z elementem Input. Z₎
jako indeks dolny ujednolici swoje wyjście zI
elementem thS
, z[S,I]
jako wejście.źródło
Cubix , 8 bajtów
To rozwiązanie ma indeks 1. Dane wejściowe powinny składać się najpierw z liczby, następnie z separatora (który nie jest cyfrą ani a
.
), a następnie z łańcucha.Wypróbuj online!
źródło
CJam , 3 bajty
Wypróbuj online!
=
jest wbudowanym narzędziem do indeksowania list / ciągów.źródło
Japt , 2 bajty
To rozwiązanie ma indeks 0.
Wypróbuj online!
źródło
SILOS , 43 bajty
Wypróbuj online!
Wystarczająco proste.
źródło
BF , 9 bajtów
Indeks jest pobierany za pomocą kodu znakowego znaku (takiego jak przesłanie Alice). Następnie mamy ciąg.
Wypróbuj online!
Łącze TIO używa otoki Bash, a dane wejściowe można zmienić w pliku nagłówkowym (powodem otoki jest to, że możemy zobaczyć bajty).
źródło
JavaScript,
1110 bajtówWykorzystuje indeksowanie 0.
-1 bajt dzięki @Leaky Nun
źródło
s=>i=>s[i]
aby uratować bajt> <> , 13 + 1 = 14 bajtów
+1 dla
-v
flagi, aby przejąć daneDzięki @steenbergh za powiadomienie mnie o
-v
flagi i oszczędność mi 3 bajtów!Wprowadź indeks za pomocą argumentu wiersza poleceń
-v [index]
(indeksowany 0) i wprowadź ciąg przez stdin.Wypróbuj online!
Wyjaśnienie
Stos zaczyna się od indeksu na górze.
:
powiela to.?
ignoruje następny znak, jeśli indeks wynosi 0. (Usuwanie go ze stosu)Jeśli jest zero,
\
odzwierciedla kierunek zejścia. Następnie jest odzwierciedlany po prawej stronie przy następnym\
. Zawija się i wykonujei
nput znaku,o
wypisuje go i;
zatrzymuje wykonywanie.Jeśli nie,
!
pomija następną instrukcję, więc nie spada.i~
wprowadza znak, a następnie natychmiast go odrzuca.1
wypycha 1.-
odejmuje1
od indeksu, więc jeden znak na wejściu jest zużywany, a indeks jest zmniejszany. Program zapętla się z powrotem do:
.źródło
-v <x>
parametr wiersza polecenia, który inicjuje stos, który ma zostać zatrzymany<x>
przy starcie programu. Wypróbuj onlineMarchewka , 16 bajtów
Wypróbuj online!
Format wejściowy jest taki:
A program ma indeks 1.
Wyjaśnienie
Marchew ma kilka zmiennych globalnych, po jednej dla każdego typu: string, float i array (inne zostaną wkrótce zaimplementowane). Program uruchamia się w trybie łańcuchowym, w którym wszyscy operatorzy wpływają na globalną zmienną łańcuchową. I te zmienne nazywam „stosem”.
(Przykład wkład:
abcdef\n3
)Teraz zwraca tablicę jednoelementową zawierającą ciąg o długości jeden, ale jest wyświetlany jako ciąg w witrynie.
Jeśli naprawdę chcielibyśmy dać wynik jako ciąg, moglibyśmy z łatwością zrobić to
S","
na końcu, ale to nie ma znaczenia, ponieważ wynik nadal wygląda tak samo na interpretatorze.źródło
Partia, 32 bajty
Czyta
s
ze STDIN i przyjmujen
jako parametr wiersza polecenia.źródło
GolfScript ,
74 bajtyWypróbuj online!
Wciągam GolfScript, więc cenię pomoc Martina Endera .
źródło
[
.~1/=
Turtlèd , 9 bajtów
Wypróbuj online!
wyjaśnienie:
Po pierwsze, Turtlèd jest oparty na siatce, z żółwiem. Istnieją komórki siatki, w których żółw może poruszać się w lewo, w górę, w dół i w prawo, i mogą pisać rzeczy na komórkach siatki.
źródło
Clojure, 3
: P Co możesz zrobić, jeśli jest do tego wbudowany ? Działa to na listach, wektorach, ciągach i sekwencjach. Jest to O (1) lub O (n), w zależności od użytego typu danych.
źródło
sed , 31 bajtów
Wypróbuj online!
Dane wejściowe: indeks i ciąg oddzielone jedną spacją. Indeks w jednostkowej, ale zerowej.
źródło
Dyvil , 4 bajty
Tworzy anonimową funkcję, która przyjmuje a
String
i anint
i zwraca achar
.Stosowanie:
źródło
Pip , 3 bajty
Jest to oparte na 0. Wypróbuj online!
źródło
QBasic 4.5, 24 bajty
Całkiem proste.
źródło
Vim, 8 bajtów
Ponieważ V jest kompatybilny wstecz, możesz wypróbować online!
źródło
Mathematica, 18 bajtów
Podstawowe rozwiązanie, ale niestety nazwa funkcji jest dość długa.
źródło
C #, 11 bajtów
źródło