История
Вы видели этот пост от 9gag ? Может быть, у вас есть чувство, чтобы сделать свои собственные предложения. Но потом вы понимаете, что вы можете просто сыграть сценарий за полчаса, и вам никогда не придется иметь дело с этим.
Представление
Ваша программа получит входную строку, которая будет возвращена с добавленными кавычками, как описано ниже. Стандартные лазейки запрещены. Вывод в виде списка строк разрешен. Конечные пробелы и пустые строки, которые не нарушают вывод, разрешены.
Правила ввода
- Ввод содержит только печатные символы ASCII.
- Входные данные могут содержать пробелы. Слова определяются с ними.
- Гарантируется, что за пробелом никогда не последует другое пробел.
- Случай отсутствия ввода или пустой строки не имеет значения.
Правила вывода
Если дано одно слово, то программа должна вернуть строку между кавычками.
Если во входной строке 2 или более слов, сначала возвращается начальный ввод, но первое слово в кавычках. Затем на следующей строке он возвращает начальный ввод, но со вторым словом в кавычках. И так далее для остальных слов.
В общем, программа должна вернуть столько строк, сколько есть слов на входе.
Примеры:
test -> "test"
This is codegolf -> "This" is codegolf
This "is" codegolf
This is "codegolf"
This is a significantly longer, but not the longest testcase -> "This" is a significantly longer, but not the longest testcase
This "is" a significantly longer, but not the longest testcase
This is "a" significantly longer, but not the longest testcase
This is a "significantly" longer, but not the longest testcase
This is a significantly "longer," but not the longest testcase
This is a significantly longer, "but" not the longest testcase
This is a significantly longer, but "not" the longest testcase
This is a significantly longer, but not "the" longest testcase
This is a significantly longer, but not the "longest" testcase
This is a significantly longer, but not the longest "testcase"
Here is an another one -> "Here" is an another one
Here "is" an another one
Here is "an" another one
Here is an "another" one
Here is an another "one"
Это код-гольф , поэтому побеждает наименее байтовый ответ!
"
символов?''
,‘’
или“”
, скорее , чем""
?Ответы:
vim, 38 байт
Попробуйте онлайн!
Требуется плагин vim -round .
Если ввод не содержит
"
символов, это может быть сделано в 19 байтах :Здесь мы записываем рекурсивный макрос (
qq ... @qq@q
), который окружает слово кавычками (ysW"
), дублирует строку (Yp
), удаляет кавычки (ds"
) и переходит к следующему слову (W
) перед рекурсивным вызовом самого себя. После его завершения появляются две посторонние строки, которые удаляются с помощьюdk
.Полное решение просто оборачивает это
:s/"/<C-d>/g
в начало, которое заменяет существующие"
символы непечатаемым символом, и:%s/<C-d>/"/g
в конце, которое отменяет замену.источник
Haskell, 65 байт
Возвращает список строк.
Попробуйте онлайн!
источник
\n
пробелами, они ведут себя некорректно, когда они присутствуют.~
. «Входные данные могут содержать пробелы», а не «пробел».Сетчатка 0.8.2 , 17 байт
Попробуйте онлайн! Ссылка включает тестовый набор. Объяснение:
Разверните каждый пробел, продублировав строку и вставив кавычки.
Исправьте первую и последнюю строчки.
источник
Желе ,
1514 байтПопробуйте онлайн!
Как?
источник
JavaScript (ES6),
43 42 4138 байтСохранено 3 байта благодаря @mazzy
Использует нестандартные, но широко поддерживаемые
RegExp.leftContext
иRegExp.rightContext
. Это много разных цитат ...Попробуйте онлайн!
источник
This is a significantly "longer,"...
/(\S+)/g
сработает?Java,
235 183132 байта-52 байта, злоупотребляя различными вещами (статический доступ, список по сравнению с массивом, печать вместо возврата и т. Д. Спасибо @ValueInk!)
-51 байт, ленивый и позволяющий @KevinCruijssen делать работу за меня
Попробуйте онлайн
источник
java.util.Arrays.copyOfRange
. Если вы используете,java.util.List
вы можете использоватьsubList
для более коротких и печатать в STDOUT вместо построения массива. Я получил 193 байта с этими идеями, а также злоупотребил ключевым словом var.String.join
сs.join
для этих дополнительных предупреждений IDE (и -10 байт).Первая попытка игры в гольф кода, надеюсь, это не страшно, и, надеюсь, это не нарушение правил
Котлин,
105112147117 байт / символовПопробуйте онлайн!
источник
05AB1E , 14 байтов
Попробуйте онлайн!
+1 байт (и это работает для крайнего случая) благодаря Emigna. -1 байт благодаря Кевину!
источник
ð¡
для обработки ввода, такие какtest
.»
.JavaScript,
91977578 байтВыводит список строк в виде массива JavaScript. Последняя запись имеет завершающий пробел, как это разрешено в вопросе. Тестовый код записывает каждую запись в консоль в отдельной строке для демонстрационных целей.
Благодаря Shaggy за 19 байт и отсутствие начальных пробелов - когда оператор расширения используется в пустом массиве для инициализации литерала массива, в массиве, созданном оператором распространения, не создаются слоты:
(91-байтовая версия имела начальный пробел в первой строке, 97-байтовая версия заняла 6 байт, чтобы удалить ее.)
источник
f
функцию. В противном случае проверено. Отличная работа!Python 3 ,
79,69, 65 байтПопробуйте онлайн!
Shaved 10 bytes thanks to xnor. And now this is 65 bytes as per Erik the Outgolfer solution. Program ends with IndexError but this is fine.
источник
print(*l)
in Python 3 in place ofprint(" ".join(l))
.w
toinput().split()
, assign it toinput()
, then, in thewhile
loop, assignm
tow.split()
, which will create a new list at each iteration to avoid reference issues, then setm[i]
to'"%s"'%m[i]
andprint(*m)
.Java 8,
72716762 bytesTry it online.
Explanation:
Regex explanation:
источник
Ruby with
-an
, 53 bytesThe flags
-an
are read each line and split to$F
.Try it online!
источник
Ruby, 98 chars.
First submission ever. This can definitely be shortened. I just wanted to get an answer in quickly.
Try it online!
источник
s.split
as a variable and edit the index you want to have the quotes around it, instead of using the overly verboseeach_with_index.map
. Also, you can submit the anonymous lambda without naming it, and join can be replaced with a*
operator. This drops your byte count to 64 bytes.Perl 6,
4340 bytesTry it online!
Matches all possible words, then joins each list by quotes. This could be one byte shorter if we could output lines in reverse order.
Explanation:
источник
Reflections, 229 bytes
Test it!
I "quickly" "golfed" this in a "funny" "golfing" language.
Глядя на все эти пробелы, он может быть короче.
источник
Haskell , 64 байта
Попробуйте онлайн!
Выводит список строк. На основании ответа Ними .
источник
\n
или"
.Stax , 10 байт
Запустите и отладьте его
Распакованный, размазанный и прокомментированный, это выглядит так.
Запустите этот
источник
C (gcc) ,
136133 байтаПоскольку токенизирующие функции C будут портить строку при будущих чтениях, я вместо этого вычисляю число и смещения для каждого слова, а затем заканчиваю, когда общее количество итераций внешнего цикла совпадает с количеством слов.
Попробуйте онлайн!
источник
"\""+!!(i-++j)
наi-++j?"":"\""
сэкономит вам байт.PowerShell ,
604036 байт-20 байтов, вдохновленных Арно
Попробуйте онлайн!
Результат имеет один дополнительный пробел и одну пустую строку в хвосте.
Powershell, без регулярных выражений, 60 байтов
Попробуйте онлайн!
Менее гольф:
источник
The input only contains printable ASCII characters.
, 2The input may contain spaces
.. Вкладки и другие пробелы не для печати ASCII, не так ли? :)JavaScript, 62 байта
Спасибо @Shaggy за 10 байтов
объяснение
источник
Java (JDK) , 104 байта
Попробуйте онлайн!
источник
R ,
9476 байт-18 байт благодаря Джузеппе
Попробуйте онлайн!
Спасибо digEmAll за правильную настройку TIO. Он принимает, например,
This is codegolf
и выводит правильноОн использует матричный формат с повторением предложения
n
; тогда нам нужно только изменить диагональные записи. Обратите внимание, что обычно в R-гольф-коде строки считываются сscan(,"")
, но вместо пустой строки можно использовать любую строку вместоwhat
(илиw
) .Объяснение старой версии без золота:
источник
scan
?""
мы можем сократить до 68 байт , используяsQuote
.Это мой первый кодовый гольф. надеюсь, это не дерьмо.
РЕДАКТИРОВАТЬ: сократил до 54 байтов с лучшим регулярным выражением.
** РЕДАКТИРОВАТЬ 2: в соответствии с предложениями исправил ошибку и сделал ее короче **
JavaScript (V8) , 46 байт
Попробуйте онлайн!
источник
C # (интерактивный компилятор Visual C #) с
/u:System.Text.RegularExpressions.Regex
флагом,5940 байтПорт моего ответа Java 8 , так что ищите объяснения.-19 байт путем переноса регулярного выражения @Arnauld , так как
$`
и$'
поддерживаются в C # .NET.Попробуйте онлайн.
источник
Elm Используя рекурсию,
132 130 121 211100 99 байтБлагодаря технике Кевина Круйссена удалось сократить объем до 9 байт, а еще 22 байта были обработаны только ASCII . Обратился к нехвостовой рекурсии во время игры в гольф.
Попробуйте онлайн
85 байт после выставления
String
функций в текущей области видимостиUngolfed версия (с использованием хвостовой рекурсии)
Попробуй без золота
источник
Japt ,
1412 байтПопытайся
2 байта сохранены благодаря Оливеру.
источник
PowerShell ,
7065 байтПопробуйте онлайн!
Имеет набор тестов в испытании. Имеет 1 пробел в первом ряду и 1 пробел в последнем ряду. Попытка рефакторинга.
источник
Древесный уголь , 19 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Примечание: конечный пробел. Объяснение:
источник
Атташе , 34 байта
Попробуйте онлайн! Анонимная функция, возвращающая список строк.
объяснение
источник
C # (интерактивный компилятор Visual C #) , 123 байта
Интересно, можно ли это сократить с помощью регулярных выражений?
Попробуйте онлайн!
источник