Напишите программу, которая принимает входную строку длиной 2 или более символов и добавляет строку ~BOO!~
(эта строка имеет начальный и конечный пробел) в равномерно случайное место в строке, которое не находится ни на одном конце.
Запрещенные выборочные вводы : 2
или
(пустой ввод)
Запрещенные выборочные выходы : Hello ~BOO!~
или ~BOO!~ Hello
для вводаHello
Пример ввода :Hello, World!
Пример выходов : Hel ~BOO!~ lo, World!
илиHello, Worl ~BOO!~ d!
Это код гольф, ребята. Стандартные правила применяются. Самый короткий код в байтах побеждает.
Поздравляем Денниса с самой короткой и жуткой программой! Счастливого Хэллоуина!
Ответы:
Pyth,
1918 байтСпасибо @Jakube за вывод 1 байта!
Попробуйте онлайн.
Как это устроено
источник
GML, 91 байт
Достаточно просто - получить строку, вставить в нее подстроку, вывести строку. Выполнено.
источник
Python 3, 60 байт
Замечания:
Модуль
hash()
будет равномерно распределен по длине строки. Если вы думаете, что это нарушает правила, обратите внимание, что из-за рандомизации хеша в Python это на самом деле случайное: повторное выполнение с одним и тем же вводом даст разные результаты.источник
CJam, 20 байтов
Попробуйте онлайн
Объяснение:
источник
Пип, 19 байт
Принимает данные из командной строки. Если у ввода есть пробелы или другие специальные символы, его нужно будет заключить в кавычки.
Объяснение:
источник
Юлия, 70 байт
Ungolfed:
источник
APL, 27 байт
У APL нет функции вставки, поэтому мы поворачиваем строку.
Пример ввода на TryAPL
источник
Витси, 19 байт
Обратите внимание, что
z
иZ
были отредактированы сегодня, но не для этого вызова.источник
Луа, 75 байт
источник
Python 3, 79 байт
Попробуйте онлайн
Довольно понятно: читайте строку, выбирайте случайное целое число от 1 до длины строки и печатайте строку с
' ~BOO!~ '
добавленным символом .источник
print
печатаются через пробел, вы можете сократить пробелы с помощьюprint(s[:n],'~BOO!~',s[n:])
.Perl, 35 байт
34-байтовый код + 1-байтовая командная строка
Использование:
источник
C #, 125 байт
Expanded:
Это решение предполагает, что строка передается в качестве первого параметра командной строки. Это необычно для C # (стандартный ввод более нормален), поэтому я также включил решение, которое использует обычный ввод stdin:
C #, 139 байт
Expanded:
источник
static void Main(string[] x) {Console.Write(x[0].Insert (...) x[0].Length (...)
сократит ваш кодMATLAB, 69 байт
Вставка строки в середине строки по заданному индексу в MATLAB обходится дорого в байтах. Если бы был простой способ сделать это, я мог бы сэкономить приличную сумму, перейдя к анонимной функции, но я не могу ее найти. Ах хорошо.
По сути, он получает случайное число от 1 до длины строки минус 1. Затем он отображает все, вплоть до этого индекса, включая индекс
~Boo!~
, а затем все после индекса до конца.Он также работает с Octave , так что вы можете попробовать это онлайн здесь .
источник
Bash / GNU, 61 байт
Принимает входную строку в качестве аргумента
источник
Рубин, 46 байт
источник
JavaScript, 79
Это для консоли браузера; развлекайся, просто засунув это внутрь.
источник
Java 8,
158154 байтаПопробуй это здесь.
РЕДАКТИРОВАТЬ: только теперь чтение программы вместо функции / программы по умолчанию в описании задачи. Так что добавили bordercode с интерфейсом и основным методом.
Если бы функция была разрешена, это было бы (
9995 байт )Попробуй это здесь.
Объяснение:
источник
Chaîne , 23 байта
источник
TeaScript, 30 байт
Очень прямо вперед.
источник
CJam, 19 байтов
источник
mr
вернется0
или1
, потому что ни,-1
ни0
действительны для разделения строки с/
.BOO
в конце строки, вам также нужно(
до этогоmr
. Но тогда он идентичен этому ответу: codegolf.stackexchange.com/a/62355/8478q
иl
является синонимом).