Bei einer Zeichenfolge s
und einer nicht negativen Zahl, die n
kleiner als die Länge von ist s
, wird das Zeichen an der n
-ten Position von ausgegeben s
.
0-Indizierung und 1-Indizierung sind zulässig. Bei 1-Indizierung ist n
positiv und kleiner oder gleich der Länge von s
.
s
besteht nur aus druckbaren Zeichen.
Jede angemessene Eingabe / Ausgabe ist zulässig. Es gelten Standardlücken .
Testfälle (0-Indexierung):
n s output
0 "abcde" a
1 "abcde" b
2 "a != b" !
3 "+-*/" /
4 "314159" 5
Testfälle (1-Indizierung):
n s output
1 "abcde" a
2 "abcde" b
3 "a != b" !
4 "+-*/" /
5 "314159" 5
Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Antworten:
MATL , 1 Byte
Probieren Sie es online!
Nun, es ist schwer, es viel einfacher zu machen.
)
Indiziert die erste Eingabe mit dem zweiten Eingabewert. Dies ist 1-indiziert.quelle
Alice , 5 Bytes
Probieren Sie es online!
Wie üblich ist es viel kürzer, wenn wir den Ordinal-Modus vermeiden und ein abgrundtiefes Eingabeformat verwenden. Hier wird der Codepunkt des ersten Zeichens als Ganzzahleingabe verwendet . Der Rest der Eingabe ist die Zeichenfolge. Der Index basiert auf 1.
Erläuterung
quelle
abysmal
- Ich dachte, Sie haben es geschafft xDPython, 15 Bytes
oder
Beide benötigen zwei Argumente: den String und den Index. 0-indiziert.
quelle
Haskell, 4 Bytes
0-basierte Indizierung. Anwendungsbeispiel:
(!!) "Hello" 1
->'e'
.quelle
Oktave, 10 Bytes
Nimmt eine Zeichenfolge
s
und eine Zahln
als Eingabe und gibt dasn
th-Zeichen von zurücks
.quelle
Retina ,
282019 Bytes8 Bytes dank @MartinEnder eingespart, indem keine Bilanzkreise verwendet wurden
1 Byte dank @ mbomb007 durch Verwendung von
^.+
anstelle von gespeichert^\d+
Probieren Sie es online!
Das Programm ist 0-indiziert.
quelle
\d
zu.
, um ein Byte zu speichern.05AB1E , 1 Byte
0-indiziert.
Probieren Sie es online!
quelle
Alice , 10 Bytes
Probieren Sie es online!
Erwartet die Zeichenfolge in der ersten Zeile und den 0-basierten Index in der zweiten Zeile.
Erläuterung
Trotz der Fülle an integrierten Funktionen gibt es in Alice keine String-Indizierung. Der Grund dafür ist, dass sowohl ein Integer- als auch ein String-Parameter erforderlich sind und alle Befehle in Alice ausschließlich Ganzzahlen für Ganzzahlen oder Strings für Strings sind.
Im Allgemeinen besteht die Hauptmethode zum Ausführen von Operationen für Zeichenfolgen, die Ganzzahlen erfordern oder zu Ganzzahlen führen, darin, die Zeichenfolge im Ordnungsmodus auf dem Band zu speichern, den Sie dann im Kardinalmodus mit Ganzzahlen bearbeiten können.
quelle
Gelee , 1 Byte
Probieren Sie es online!
quelle
Prolog (SWI) ,
4037 BytesProbieren Sie es online!
quelle
Brachylog , 2 Bytes
Probieren Sie es online!
Erläuterung
∋
Vereinheitlicht seine Ausgabe mit einem Element der Eingabe. Mit₎
as subscript wird die Ausgabe mit demI
th-Element vonS
, with[S,I]
as input vereinheitlicht .quelle
Cubix , 8 Bytes
Diese Lösung ist 1-indiziert. Die Eingabe sollte zuerst aus einer Zahl, dann aus einem Trennzeichen (das keine Ziffer oder ein
.
) und dann aus der Zeichenfolge bestehen.Probieren Sie es online!
quelle
CJam , 3 Bytes
Probieren Sie es online!
=
ist das eingebaute Werkzeug für die Indexierung von Listen / Strings.quelle
Japt , 2 Bytes
Diese Lösung ist 0-indiziert.
Probieren Sie es online!
quelle
SILOS , 43 Bytes
Probieren Sie es online!
Einfach genug.
quelle
BF , 9 Bytes
Der Index wird über den Zeichencode eines Zeichens erstellt (wie bei der Alice-Übermittlung). Danach haben wir die Zeichenfolge.
Probieren Sie es online!
Der TIO-Link verwendet einen Bash-Wrapper und die Eingabe kann in der Header-Datei geändert werden (der Grund für den Wrapper ist, dass wir die Bytes sehen können).
quelle
JavaScript,
11-10BytesVerwendet eine 0-basierte Indizierung.
-1 Byte dank @Leaky Nun
quelle
s=>i=>s[i]
, um ein Byte zu speichern> <> , 13 + 1 = 14 Bytes
+1 für
-v
Flag zur EingabeVielen Dank an @steenbergh für die Benachrichtigung über das
-v
Flagge und das Speichern von 3 Bytes!Geben Sie den Index mit dem Befehlszeilenargument ein
-v [index]
(0-indexiert) ein und geben Sie die Zeichenfolge über stdin ein.Probieren Sie es online!
Erläuterung
Der Stapel beginnt mit dem Index oben.
:
dupliziert es.?
wenn ignoriert das nächste Zeichen der Index 0 ist (es vom Stapel Popping)Wenn es Null ist,
\
reflektiert die Richtung zu gehen. Dann wird es mit dem nächsten nach rechts gespiegelt\
. Esi
umgibt und führt nput ein Zeichen aus,o
gibt es aus und;
hält die Ausführung an.Wenn nicht,
!
überspringt die nächste Anweisung, damit sie nicht abfällt.i~
gibt ein Zeichen ein und verwirft es dann sofort.1
drückt 1.-
subtrahiert1
vom Index, so dass ein Zeichen in der Eingabe verbraucht und der Index dekrementiert wird. Das Programm führt eine Schleife zurück zum:
.quelle
-v <x>
Befehlszeilenparameter, der den Stapel initialisiert, der<x>
beim Programmstart gehalten werden soll. Versuchen Sie es onlineKarotte , 16 Bytes
Probieren Sie es online!
Das Eingabeformat ist wie folgt:
Und das Programm ist 1-indiziert.
Erläuterung
Carrot hat mehrere globale Variablen, eine für jeden Typ: String, Float und Array (andere werden in Kürze implementiert). Das Programm startet im String-Modus, in dem alle Operatoren die globale String-Variable beeinflussen. Und ich nenne diese Variablen den "Stapel".
(Beispiel Eingabe:
abcdef\n3
)Nun wird ein Array mit einem Element zurückgegeben, das eine Zeichenfolge der Länge eins enthält, auf der Website jedoch als Zeichenfolge angezeigt.
Wenn wir das Ergebnis wirklich als Zeichenfolge angeben wollten, könnten wir es
S","
am Ende problemlos tun , aber es spielt keine Rolle, da die Ausgabe auf dem Interpreter immer noch gleich aussieht.quelle
Batch, 32 Bytes
Liest
s
aus STDIN und nimmtn
als Befehlszeilenparameter.quelle
GolfScript ,
74 BytesProbieren Sie es online!
Ich lese GolfScript und schätze die Hilfe von Martin Ender .
quelle
[
.~1/=
Turtlèd , 9 Bytes
Probieren Sie es online!
Erläuterung:
Zunächst einmal ist Turtlèd gitterbasiert, mit einer Schildkrötensache. Es gibt Gitterzellen, auf denen sich die Schildkröte nach links, oben, unten und rechts bewegen kann, und auf die Gitterzellen können Dinge geschrieben werden.
quelle
Clojure, 3
: P Was können Sie tun, wenn es dafür ein eingebautes gibt ? Dies funktioniert mit Listen, Vektoren, Strings und Sequenzen. Es ist entweder O (1) oder O (n), abhängig vom verwendeten Datentyp.
quelle
sed , 31 bytes
Probieren Sie es online!
Eingabe: Index und der String, durch ein Leerzeichen getrennt. Index unär, aber nullbasiert.
quelle
Dyvil , 4 Bytes
Erstellt eine anonyme Funktion, die eine
String
und ein und einint
zurückgibtchar
.Verwendung:
quelle
Pip , 3 Bytes
Dies ist 0-basiert. Probieren Sie es online!
quelle
QBasic 4.5, 24 Bytes
Ziemlich einfach.
quelle
Vim, 8 Bytes
Da V abwärtskompatibel ist, können Sie es online ausprobieren!
quelle
Mathematica, 18 Bytes
Grundlösung, aber leider ist der Funktionsname recht lang.
quelle
C #, 11 Bytes
quelle