Napisz program, który pobiera ciąg wejściowy o długości 2 lub więcej znaków i dodaje ciąg ~BOO!~
(ten ciąg ma spację początkową i końcową) w jednolicie losowym miejscu ciągu, który nie znajduje się na żadnym końcu.
Niedozwolone próbki danych wejściowych : 2
lub
(puste dane wejściowe)
Niedozwolone próbki danych wyjściowych : Hello ~BOO!~
lub ~BOO!~ Hello
dane wejścioweHello
Przykładowe dane wejściowe :Hello, World!
Przykładowe wyniki : Hel ~BOO!~ lo, World!
lubHello, Worl ~BOO!~ d!
To jest golf golfowy, chłopaki. Obowiązują standardowe zasady. Najkrótszy kod w bajtach wygrywa.
Gratulacje dla Dennisa za najkrótszy, najstraszniejszy program! Wesołego Halloween!
Odpowiedzi:
Pyth,
1918 bajtówDzięki @Jakube za grę w golfa z 1 bajtu!
Wypróbuj online.
Jak to działa
źródło
GML, 91 bajtów
Dość proste - weź ciąg, wstaw do niego podciąg i wyślij ciąg. Gotowy.
źródło
Python 3, 60 bajtów
Uwaga:
Moduł
hash()
będzie równomiernie rozmieszczony na całej długości łańcucha. Jeśli uważasz, że to nagina reguły, zwróć uwagę, że z powodu losowej funkcji skrótu Pythona jest to w rzeczywistości losowe: wielokrotne wykonywanie z tymi samymi danymi wejściowymi da różne wyniki.źródło
CJam, 20 bajtów
Wypróbuj online
Wyjaśnienie:
źródło
Pip, 19 bajtów
Pobiera dane z wiersza polecenia. Jeśli dane wejściowe zawierają spacje lub inne znaki specjalne, należy je umieścić w cudzysłowach.
Wyjaśnienie:
źródło
Julia, 70 bajtów
Nie golfowany:
źródło
APL, 27 bajtów
APL nie ma funkcji wstawiania, więc zamiast tego obracamy ciąg.
Przykładowe dane wejściowe na TryAPL
źródło
Vitsy, 19 bajtów
Należy pamiętać, że
z
iZ
były edytowane dzisiaj, ale nie na to wyzwanie.źródło
Lua, 75 bajtów
źródło
Python 3, 79 bajtów
Wypróbuj online
Całkiem zrozumiałe - przeczytaj ciąg, wybierz losową liczbę całkowitą od 1 do długości ciągu i wydrukuj ciąg z
' ~BOO!~ '
wstawionym.źródło
print
wydrukowania jest oddzielonych spacjami, możesz wycinać spacje za pomocąprint(s[:n],'~BOO!~',s[n:])
.Perl, 35 bajtów
34 bajtowy kod + 1 bajtowy wiersz poleceń
Stosowanie:
źródło
C #, 125 bajtów
Rozszerzony:
To rozwiązanie zakłada, że ciąg jest przekazywany jako pierwszy parametr wiersza polecenia. Nie jest to normalne w przypadku C # (standardowe wejście jest bardziej normalne), więc dołączyłem również rozwiązanie, które używa normalnego standardowego wejścia:
C #, 139 bajtów
Rozszerzony:
źródło
static void Main(string[] x) {Console.Write(x[0].Insert (...) x[0].Length (...)
skróci Twój kodMATLAB, 69 bajtów
Wstawienie ciągu środkowego ciągu w danym indeksie w MATLAB jest kosztowne pod względem bajtów. Gdyby istniał prosty sposób, można by zaoszczędzić sporo, przechodząc do funkcji anonimowej, ale nie mogę jej znaleźć. Ach tak.
Zasadniczo otrzymuje losową liczbę między 1 a długością ciągu minus 1. Następnie wyświetla wszystko aż do tego indeksu włącznie, a następnie
~Boo!~
, a potem wszystko po indeksie do końca.Działa również z Octave , więc możesz wypróbować go online tutaj .
źródło
Bash / GNU, 61 bajtów
Bierze ciąg wejściowy jako argument
źródło
Rubinowy, 46 bajtów
źródło
JavaScript, 79
To jest na konsolę przeglądarki; baw się dobrze po prostu wpadając.
źródło
Java 8,
158154 bajtówWypróbuj tutaj.
EDYCJA: Dopiero teraz odczytuje program zamiast domyślnej funkcji / programu w opisie wyzwania. Dodano kod kreskowy z interfejsem i główną metodą.
Jeśli funkcja byłaby dozwolona, byłaby to (
9995 bajtów )Wypróbuj tutaj.
Wyjaśnienie:
źródło
Chaîne , 23 bajty
źródło
TeaScript, 30 bajtów
Bardzo prosto.
źródło
CJam, 19 bajtów
źródło
mr
powrocie0
lub1
, ponieważ ani-1
nie0
są ważne do dzielenia łańcucha/
.BOO
na końcu łańcucha, będziesz również potrzebował(
wcześniejmr
. Ale to jest identyczne z odpowiedzią: codegolf.stackexchange.com/a/62355/8478q
il
są synonimami).