(stark inspiriert durch das String-Element am angegebenen Index )
Wenn eine Zeichenfolge s
und eine Ganzzahl angegeben werden, n
die einen Index in darstellen s
, wird die Ausgabe s
mit dem Zeichen an der n
-ten Stelle entfernt.
0-Indizierung und 1-Indizierung sind zulässig.
- Bei der 0-Indizierung ist
n
dies nicht negativ und kürzer als die Länge vons
. - Für die 1-Indizierung ist
n
positiv und kleiner oder gleich der Länge vons
.
s
besteht nur aus druckbaren ASCII-Zeichen ( \x20-\x7E
, oder
bis ~
).
Jede angemessene Eingabe / Ausgabe ist zulässig. Es gelten Standardlücken .
Testfälle (0-indiziert):
n s output
0 "abcde" "bcde"
1 "abcde" "acde"
2 "a != b" "a = b"
3 "+-*/" "+-*"
4 "1234.5" "12345"
3 "314151" "31451"
Testfälle (1-indiziert):
n s output
1 "abcde" "bcde"
2 "abcde" "acde"
3 "a != b" "a = b"
4 "+-*/" "+-*"
5 "1234.5" "12345"
4 "314151" "31451"
Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
3
,314151
->31451
. Ich würde nicht annehmen.Antworten:
C #,
20 -19 Bytesquelle
Alice ,
13-12BytesDanke an Leo für das Speichern von 1 Byte.
Probieren Sie es online!
Die erste Zeile der Eingabe ist die Zeichenfolge, die zweite Zeile ist der auf 0 basierende Index.
Erläuterung
quelle
Japt , 2 Bytes
Probieren Sie es online!
quelle
K (Kona), 1 Byte
Ich muss builtins lieben. 0-basierte Indizierung. Verwendung:
quelle
Haskell ,
2824 Bytes-4 Byte dank Laikoni, diese Version ist 1-indiziert.
Alte Antwort:
Eine einfache rekursive Funktion, die den Wert annimmt. Sie ist 0-indiziert.
Mein erstes Mal Code-Golfing, vielleicht ist es nicht die optimale Lösung. Naja.
quelle
Mathematica, 18 Bytes
1-indiziert
Eingang
danke Martin Ender
quelle
["abcde", {1}]
In diesem Fall istStringDrop
allein der Trick. Was denkst du? (Vielleicht möchten Sie explizit erwähnen, dass es auch 1-indiziert ist.) Ich freue mich immer, wenn Leute Mathematica-Antworten posten :)V , 3 Bytes
Probieren Sie es online!
Dies verwendet die 1-Indizierung.
quelle
CJam , 4 Bytes
Probieren Sie es online!
Erläuterung
quelle
GCC c Funktion, 25
1-basierte Indizierung.
Viele undefinierte Verhaltensweisen hier, achten Sie also auf verirrte Velociraptoren :
strcpy()
Manpage sagt, dass das Verhalten undefiniert ist , wenn zwischen Objekten kopiert wird, die sich überlappen . Hier gibt es eindeutig eine Überlappung der Zeichenfolgen src und dest , aber es scheint zu funktionieren, also ist entweder glibc vorsichtiger oder ich habe Glück gehabt.s+=n
vor dem passierts-1
. Der c- Standard gibt keine solchen Garantien und nennt dies tatsächlich undefiniertes Verhalten. Auch hier scheint es mit dem GCC-Compiler unter x86_64 Linux wie erforderlich zu funktionieren.Probieren Sie es online aus .
quelle
strcpy
die Argumente in der Reihenfolge von rechts nach links verschoben werden, was das Verhalten erklären würde, aber Sie sagten, Sie würdenx86_64
Register verwenden ... Vielleicht hat sich der Compiler für Golf entschieden der generierte Code und entschied, dass das Berechnen von s + = n zuerst golfer war!MATL , 3 Bytes
Verwendet 1-basierte Indizierung.
Probieren Sie es online! Oder überprüfen Sie alle Testfälle .
Erläuterung
In der modifizierten Version mit allen Testfällen befindet sich der Code in einer Endlosschleife,
`...T
bis keine Eingabe mehr gefunden wird. Am Ende jeder Iteration wird die Anzeigefunktion (XD
) explizit aufgerufen, und der Stapel wird gelöscht (x
), um ihn für die nächste Iteration vorzubereiten.quelle
Vim, 7 Bytes
Wie es funktioniert:
Es erwartet zwei Zeilen; eins mit der Schnur und eins mit der Zahl.
quelle
jD@"gox
Java 8, 39 Bytes
Probieren Sie es hier aus.
Java 7, 67 Bytes
Probieren Sie es hier aus.
quelle
s->n->new StringBuilder(s).deleteCharAt(n)+"";
obwohl es länger ist.StringBuffer
anstelle vonStringBuilder
Codegolf verwenden. ;)Ruby , 16 Bytes
Probieren Sie es online!
quelle
Haskell , 15 Bytes
Dies erfordert den kürzlich veröffentlichten GHC 8.4.1 (oder höher). Nun
<>
, als eine Funktion in Semigroups, ist im Prelude. Es ist besonders nützlich für die Funktion SemigroupProbieren Sie es online!
Da tio eine ältere Version von GHC verwendet, habe ich
<>
in den Header importiert .quelle
R, 40 Bytes
Nur um die Vielfalt der Möglichkeiten zu zeigen, von denen keine besonders kompakt ist, kann man in R mit Streichern fummeln.
quelle
05AB1E , 5 Bytes
Probieren Sie es online!
quelle
05AB1E , 6 Bytes
Probieren Sie es online!
Erläuterung
quelle
Pyth, 3 Bytes
Probieren Sie es hier aus.
Nimmt zuerst den Index.
quelle
PHP, 42 Bytes
0 indiziert
Probieren Sie es online!
quelle
JS (ES6),
413231 BytesBasierend auf dieser . Übernimmt die Eingabe durch Curry, erstens String, zweitens Index.
-9 danke an @JohanKarlsson
-1 danke an @ETHproductions
quelle
Gelee , 3 Bytes
Ein vollständiges Programm, das den (1-basierten) Index und die Zeichenfolge (in dieser Reihenfolge) verwendet und das Ergebnis druckt.
Als dyadische Funktion wird eine Liste der beiden Teile zurückgegeben.
Tatsächlich kann der Index eine Liste von n Indizes sein, in welchem Fall er eine Liste der n-1 Teile zurückgibt .
Probieren Sie es online! oder sehen Sie sich eine Testsuite an .
Wie?
Als Beispiel für die Verwendung mehrerer Indizes:
quelle
vim,
107Nimmt 1-indizierte Eingaben im folgenden Format entgegen:
Danke an @DJMcMayhem für 3 Bytes!
quelle
Java 8,
4541 Bytes4 Bytes gespart dank @ OlivierGrégoire
Meine erste Code Golf Antwort in etwas anderem als C #, auch wenn es noch nicht die kürzeste für Java ist.
quelle
;
in Lambda (-1 Byte). 2. In meinen Augen brauchen Sie a nicht zurückzugebenString
. Ich denke, dass die RückkehrStringBuffer
ohne die+""
vollkommen gültig wäre (-3 Bytes). Beispiel?BigInteger
ist eine Darstellung eines unbegrenztenint
, in diesem FallStringBuffer
/StringBuilder
sind Darstellungen von veränderlichenString
s.Python 3 , 24 Bytes
Probieren Sie es online!
quelle
JavaScript (ES6),
393433 Bytes56 Bytes gespart dank Arnauld .quelle
Brainfuck , 14 Bytes
Probieren Sie es online!
Liest einen nullbasierten Ein-Byte-Index, unmittelbar gefolgt von der Zeichenfolge.
quelle
Befunge-98 ,
352725 Bytes-4 Bytes dank @ eush77
Probieren Sie es online!
1-indiziert, beachten Sie, dass die Eingabe ein nachfolgendes Null-Byte enthält.
quelle
PHP, 41 Bytes, 35 Bytes ohne PHP
0-indiziert
TIO
quelle
[$argv[2]]
Index implizit einen Bereich? Außerdem können Sie IIRC auslassen<?php
, weil der PHP-Interpreter einen Modus hat, der ihn nicht benötigt, und weil wir normalerweise nicht für diese Art von Anzeige in einer Datei bestrafen, welche Sprache verwendet wird.Japt ,
32 BytesProbieren Sie es online!
quelle
1
R,
4847 Bytes(1 Byte gespart durch Verwendung von
el()
Dank an Giuseppe)Teilen Sie die Zeichenfolge in einzelne Zeichen auf, entfernen Sie das n-te und verketten Sie es erneut.
Möglicherweise gibt es eine bessere Lösung: strsplit () ist recht unhandlich, da es eine Liste zurückgibt.
quelle
pryr::f([function body])
Speichert ein paar Bytes und verwendetel(strsplit(s,""))
ein Byte, funktioniert aber aus irgendeinem Grund auch nicht mit TIO.install.packages("pryr")
aber vielleicht bin ich das, was ich zu kostbar finde !function(s,n)intToUtf8(utf8ToInt(s)[-n])
für 40 Bytes.function(s,n)sub(sub(0,n,"(.{0})."),"\\1",s)
für 44.