Schreiben Sie ein Programm, das eine Eingabezeichenfolge mit einer Länge von 2 oder mehr Zeichen verwendet und die Zeichenfolge ~BOO!~
(die ein führendes und endendes Leerzeichen enthält) an einer gleichmäßig zufälligen Stelle in der Zeichenfolge hinzufügt, die sich an keinem Ende befindet.
Nicht zugelassene Probeneingaben : 2
oder
(eine leere Eingabe)
Nicht zugelassene Beispielausgaben : Hello ~BOO!~
oder ~BOO!~ Hello
für die EingabeHello
Beispieleingabe :Hello, World!
Beispielausgaben : Hel ~BOO!~ lo, World!
oderHello, Worl ~BOO!~ d!
Das ist Codegolf, Jungs. Es gelten Standardregeln. Kürzester Code in Bytes gewinnt.
Wir gratulieren Dennis zum kürzesten und gruseligsten Programm! Fröhliches Halloween!
Antworten:
Pyth,
1918 BytesVielen Dank an @Jakube für das Golfen ab 1 Byte!
Probieren Sie es online aus.
Wie es funktioniert
quelle
GML, 91 Bytes
Ganz einfach - holen Sie sich eine Zeichenfolge, fügen Sie die Teilzeichenfolge ein und geben Sie die Zeichenfolge aus. Erledigt.
quelle
Python 3, 60 Bytes
Hinweis:
Das Modulo von
hash()
wird gleichmäßig über die Länge der Saite verteilt. Wenn Sie der Meinung sind, dass dies die Regeln verbiegt, beachten Sie, dass dies aufgrund der Python-Hash-Randomisierung tatsächlich zufällig ist: Wiederholte Ausführungen mit derselben Eingabe führen zu unterschiedlichen Ergebnissen.quelle
CJam, 20 Bytes
Probieren Sie es online aus
Erläuterung:
quelle
Pip, 19 Bytes
Übernimmt Eingaben von der Kommandozeile. Wenn die Eingabe Leerzeichen oder andere Sonderzeichen enthält, muss sie in Anführungszeichen gesetzt werden.
Erläuterung:
quelle
Julia, 70 Bytes
Ungolfed:
quelle
APL, 27 Bytes
APL hat keine Einfügefunktion, daher drehen wir stattdessen den String.
Beispiel für eine Eingabe in TryAPL
quelle
Vitsy, 19 Bytes
Beachten Sie, dass
z
undZ
wurden heute bearbeitet, aber nicht für diese Herausforderung.quelle
Lua, 75 Bytes
quelle
Python 3, 79 Bytes
Probieren Sie es online aus
Ziemlich selbsterklärend - lesen Sie eine Zeichenfolge, wählen Sie eine zufällige Ganzzahl zwischen 1 und der Länge der Zeichenfolge und drucken Sie die Zeichenfolge mit
' ~BOO!~ '
eingefügt.quelle
print
Leerzeichen getrennt gedruckt werden sollen, können Sie die Leerzeichen mit ausschneidenprint(s[:n],'~BOO!~',s[n:])
.Perl, 35 Bytes
34 Byte Code + 1 Byte Befehlszeile
Verwendung:
quelle
C #, 125 Bytes
Erweitert:
Diese Lösung setzt voraus, dass die Zeichenfolge als erster Befehlszeilenparameter übergeben wird. Dies ist in C # nicht üblich (stdin ist normaler), daher habe ich auch eine Lösung beigefügt, die normales stdin verwendet:
C # 139 Bytes
Erweitert:
quelle
static void Main(string[] x) {Console.Write(x[0].Insert (...) x[0].Length (...)
verkürzt deinen CodeMATLAB, 69 Bytes
Das Einfügen eines Strings mid string an einem bestimmten Index in MATLAB ist byteweise kostspielig. Wenn es eine einfache Möglichkeit gäbe, könnte ich eine Menge sparen, indem ich zu einer anonymen Funktion wechsle, aber ich kann keine finden. Ah, gut.
Grundsätzlich erhält es eine Zufallszahl zwischen 1 und der Länge des Strings minus 1. Dann zeigt es alles bis einschließlich dieses Index an, gefolgt von
~Boo!~
und dann alles nach dem Index bis zum Ende.Es funktioniert auch mit Octave , so können Sie es versuchen Online - out hier .
quelle
Bash / GNU, 61 Bytes
Übernimmt die Eingabezeichenfolge als Argument
quelle
Ruby, 46 Bytes
quelle
JavaScript, 79
Es ist für die Browserkonsole; Viel Spaß beim reinschauen.
quelle
Java 8,
158154 BytesProbieren Sie es hier aus.
BEARBEITEN: Lies erst jetzt das Programm anstelle der Standardfunktion / des Standardprogramms in der Herausforderungsbeschreibung. Fügte also den Grenzcode mit der Schnittstelle und der Hauptmethode hinzu.
Wenn eine Funktion erlaubt wäre, wäre es (
9995 Bytes )Probieren Sie es hier aus.
Erläuterung:
quelle
Chaîne , 23 Bytes
quelle
TeaScript, 30 Bytes
Sehr einfach.
quelle
CJam, 19 Bytes
quelle
mr
Rückkehr0
oder1
, weil weder-1
noch0
gültig ist , mit einer Zeichenfolge für die Spaltung/
.BOO
am Ende der Zeichenkette setzen, man bräuchte auch eine(
vorhermr
. Aber dann ist es identisch mit dieser Antwort: codegolf.stackexchange.com/a/62355/8478q
und dasl
auch so ist).