Écrivez un programme qui prend une chaîne d'entrée de 2 caractères ou plus et ajoute la chaîne ~BOO!~
(cette chaîne a un espace de début et de fin) à un endroit uniformément aléatoire de la chaîne qui n'est à aucune extrémité.
Entrées d'échantillon non autorisées : 2
ou
(une entrée vide)
Sorties d'échantillons non autorisées : Hello ~BOO!~
ou ~BOO!~ Hello
pour l'entréeHello
Exemple d'entrée :Hello, World!
Exemples de sorties : Hel ~BOO!~ lo, World!
ouHello, Worl ~BOO!~ d!
C'est du golf de code, les gars. Des règles standard s'appliquent. Le code le plus court en octets gagne.
Félicitations à Dennis pour avoir le programme le plus court et le plus effrayant! Joyeux Halloween!
Réponses:
Pyth,
1918 octetsMerci à @Jakube d'avoir joué au golf sur 1 octet!
Essayez-le en ligne.
Comment ça fonctionne
la source
GML, 91 octets
Assez simple - obtenez une chaîne, insérez-y la sous-chaîne, sortez la chaîne. Terminé.
la source
Python 3, 60 octets
Remarque:
Le module de
hash()
sera réparti uniformément sur la longueur de la chaîne. Si vous pensez que cela déforme les règles, notez qu'en raison de la randomisation du hachage de python, c'est en fait aléatoire: des exécutions répétées avec la même entrée donneront des résultats différents.la source
CJam, 20 octets
Essayez-le en ligne
Explication:
la source
Pip, 19 octets
Prend des entrées de la ligne de commande. Si l'entrée contient des espaces ou d'autres caractères spéciaux, elle devra être placée entre guillemets.
Explication:
la source
Julia, 70 octets
Non golfé:
la source
APL, 27 octets
APL n'a pas de fonction d'insertion, nous faisons donc tourner la chaîne à la place.
Exemple d'entrée sur TryAPL
la source
Vitsy, 19 octets
Notez que
z
etZ
ont été modifiés aujourd'hui, mais pas pour ce défi.la source
Lua, 75 octets
la source
Python 3, 79 octets
Essayez-le en ligne
Assez explicite - lisez une chaîne, choisissez un entier aléatoire entre 1 et la longueur de la chaîne, et imprimez la chaîne avec
' ~BOO!~ '
inséré.la source
print
sont imprimés séparés par des espaces, vous pouvez couper les espaces avecprint(s[:n],'~BOO!~',s[n:])
.Perl, 35 octets
Code de 34 octets + ligne de commande de 1 octet
Usage:
la source
C #, 125 octets
Étendu:
Cette solution suppose que la chaîne est transmise en tant que premier paramètre de ligne de commande. Ce n'est pas habituel pour C # (stdin est plus normal), j'ai donc également inclus une solution qui utilise stdin normal:
C #, 139 octets
Étendu:
la source
static void Main(string[] x) {Console.Write(x[0].Insert (...) x[0].Length (...)
raccourcira votre codeMATLAB, 69 octets
L'insertion d'une chaîne au milieu d'une chaîne à un index donné dans MATLAB est coûteuse en termes d'octets. S'il y avait un moyen simple de le faire, je pourrais économiser une bonne quantité en passant à une fonction anonyme, mais je n'en trouve pas. Et bien.
Fondamentalement, il obtient un nombre aléatoire compris entre 1 et la longueur de la chaîne moins 1. Ensuite, il affiche tout jusqu'à et y compris cet index, suivi de
~Boo!~
, puis de tout après l'index jusqu'à la fin.Il fonctionne également avec Octave , vous pouvez donc l'essayer en ligne ici .
la source
Bash / GNU, 61 octets
Prend la chaîne d'entrée comme argument
la source
Rubis, 46 octets
la source
JavaScript, 79
C'est pour la console du navigateur; Amusez-vous simplement à insérer ça.
la source
Java 8,
158154 octetsEssayez-le ici.
EDIT: Seulement en train de lire le programme au lieu de la fonction / programme par défaut dans la description du défi. Ainsi, le code de bord a été ajouté avec l'interface et la méthode principale.
Si une fonction était autorisée, ce serait (
9995 octets )Essayez-le ici.
Explication:
la source
Chaîne , 23 octets
la source
TeaScript, 30 octets
Très simple.
la source
CJam, 19 octets
la source
mr
retour0
ou1
, car ni-1
ni ne0
sont valides pour fractionner une chaîne avec/
.BOO
à la fin de la chaîne, vous auriez également besoin d'un(
avantmr
. Mais alors c'est identique à cette réponse: codegolf.stackexchange.com/a/62355/8478q
etl
sont également synonymes).