Мини-гольф на 9 лунок: Описание
- 9 (в основном довольно простых) кодов игры в гольф различной сложности
- Штрафы за использование одного и того же языка более одного раза
- Все проблемы по конкретной теме (эта тема: манипулирование текстом)
- Ввод и вывод могут быть в любом месте (например, STDIN и STDOUT, чтение из файла / запись в файл, аргумент функции и возвращаемое значение и т. Д.), Но НЕ должны быть жестко закодированы в программе
- Сильно вдохновлен 9 Hole Challenge и Text Mechanic
Отверстия
Код-гольф сумка
Возьмите две строки в качестве ввода.
Выведите количество символов первой строки, игнорируя при этом любой символ во второй строке.
Пример:f("foobarbaz", "ao")
=>5
Предварительный текст для игры в гольф
Возьмите две строки в качестве ввода.
Выведите первую строку с каждой строкой с префиксом второй.
Пример:f("foo\nbar\nbaz", "a")
=>"a foo\na bar\na baz"
Война вкладок против пробелов
Возьмите строкуs
, числоn
и логическое значениеb
(указано, как вы хотите) в качестве ввода.
Еслиb
это правда, выводs
с каждой вкладкой, преобразованной вn
пробелы.
В противном случае выведитеs
всеn
пробелы, преобразованные во вкладки.
Пример:f("if (x) {\n\tdoStuff();\n}", 4, true)
=>"if (x) {\n[sp][sp][sp][sp]doStuff();\n}"
([sp]
означает пробел)Столпы гольфа
Возьмите строку
s
, числоn
и другое число вm
качестве ввода.
Выводs
в столбцахn
строк по каждому иm
символов в столбце.
Также есть отступы одного пробела между столбцами.
Пример:f("this is some placeholder text, foo bar baz...", 3, 5)
=>this aceho foo is so lder bar b me pl text, az...
Дружеские письма
Возьмите строкуs
и число вn
качестве ввода.
Выведите наиболее распространенную группуn
букв вs
.
Если есть связь, выведите любую или все из них.
Пример:f("abcdeabcfghiabc", 3)
=>"abc"
Яичница-
Возьмите строку в качестве ввода.болтуньяна завтрак
Выведите строку со всеми зашифрованными словами (рандомизированный порядок букв), кроме их первых и последних букв.
Для простоты предположим, что входными данными будет список слов, разделенных пробелами (то есть in@$&_():;" foo bar
,@$&_():;"
считается словом).
Пример:f("this is a sentence that will be scrambled")
=>"tihs is a stcneene that wlil be sclamrbed"
ASCIIfy
Возьмите строку в качестве ввода.
Если строка содержит только цифры и пробелы, замените числа соответствующими символами ASCII (удалив пробелы).
Иначе, делайте наоборот (символы в числа).
Пример:f("ASCIIfy challenge")
=>"65 83 67 73 73 102 121 32 99 104 97 108 108 101 110 103 101"
Пример 2:f("65 83 67 73 73 102 121 32 99 104 97 108 108 101 110 103 101")
=>"ASCIIfy challenge"
Мини-мини-уценка трансформации
Возьмите строку в качестве ввода.
Выведите строку, преобразованную с помощью мини-уценки, как это используется в комментариях к Stack Exchange.
Это даже мини-эр версии: вам нужно только обрабатывать**bold**
,*italics*
и`code`
.
Вам не нужно обрабатывать неправильное вложение, как**foo *bar** baz*
. Также предположим, что когда вы видите разделитель (*
или`
), это всегда будет означать форматирование (то естьte**st**ing
=>te<b>st</b>ing
иfoo* bar *baz
=>foo<i> bar </i>baz
).
Пример:f("**foo** *bar **baz*** `qux`")
=>"<b>foo</b> <i>bar <b>baz</b></i> <code>qux</code>"
Только лучшие персонажи
Возьмите строкуs
, числоn
и строку вr
качестве ввода.
Выведитеn
th-й символ каждого слова вs
. (0-индексированный, слова разделены пробелом).
Если длина слова меньше чемn
, используйтеr
вместо этого слова.
Пример:f("this is a test sentence foo bar baz", 2, "-")
=>"i--snorz"
счет
Ваша оценка является суммой количества символов ваших программ. Для каждого повторного языка умножьте на 110%. Например, если у вас есть три решения Ruby, а общее количество символов всех ваших решений равно 1000, ваш счет равен 1000 * 1.1 * 1.1 = 1210. Если у вас есть нецелое число, округлите его в меньшую сторону.
Удачи!
code-challenge
string
multiple-holes
Дверная ручка
источник
источник
_
не имеет значения, так как я решил не включать его. Я отредактировал, чтобы уточнить некоторые другие.**foo***bar**baz*
?Ответы:
Оценка: 382 * 1,1 2 = 462
Языки, склонные к изменению.
1. APL,
84Спасибо @marinus за 4 бритья.
Вызывается со строками в качестве левого и правого аргументов, например.
2. Рубин,
3531Спасибо @DoorknobofSnow за то, что вы сбрили 4 символа.
3. Питон, 48
4. GolfScript, 20
Предполагается, что аргументы находятся в стеке. Тест онлайн
5. J, 50
Вызывается со строкой в качестве левого аргумента и числом в качестве правого, например.
6. Руби, 61
7. GolfScript,
393534Опять же, предполагается, что аргумент находится в стеке. Тест онлайн
8. Perl, 98
9. Хаскелл, 36
источник
f=->s,r{...}
) вместо функции. Я отказываюсь поднять голос до тех пор, пока оно не будет завершено, хотя: PПитон - 697 × 1,1 9 ≈ 1644
Ну и дела, я уверен, что люблю лямбды.
Примечание : 3 и 5 были бесстыдно скопированы из ответа Волатильности , так как я не мог найти лучшую альтернативу. Кроме того, это было сделано просто для удовольствия .
РЕДАКТИРОВАТЬ : Спасибо волатильности за советы.
источник
int
, так как логические значения являются их подклассом, а для 7.all([...])
может быть сокращено доx.replace(' ','').isdigit()
a
.Оценка 513 * 1,1 5 = 826
Взял довольно-таки избиение тем же языковым штрафом. Решил большинство из них в Ruby, чтобы закончить их как можно быстрее. Может изменить некоторые языки позже. Добавлен небольшой обзор / объяснение каждого ответа.
1: Python (46)
Во-первых, более короткий ответ в Ruby 2.0 (30), который дает больший штраф и более высокий общий балл:
2: Ruby 1,9+ (37)
Возвращает каждую строку с
s
префиксомt
:3: Ruby 1,9+ (48)
Возвращает
s
с заменой табуляцииn
пробелами или наоборот, в зависимости отb
:4: Ruby 1,9+ (95)
Кто-нибудь застрелит меня.
5: Ruby 1,9+ (58)
Возвращает наиболее распространенный набор
n
символов вs
:6: J (47)
Как-то скремблирует текст; Бесстыдно похищенный дословно от Маринуса :
7: Рубин (57 + 1)
Печатает ввод ASCIIfied или de-ASCIIfied. Беги с
-p
переключателем.8: Сед (87)
Печатает ввод, преобразованный из (мини) уценки в HTML:
9 Рубин 1.9+ (37)
Возвращает строку символов
n
th каждого первого слова вs
, илиr
:источник
<b>test** **test2</b>
для**test** **test2**
?**foo *bar* baz**
?-
оператор работает с перечислителем?Работа в процессе
1. Ява - 66
2. Ява - 64
3. Питон - 58
4. Питон - 84
5.
6.
7. Befunge 98 - 9
8.
9.
источник
for(char c:b.toCharArray())
иreplace(c+"","");
иreturn s.length();
(или что-то в этом роде), чтобы оно заработало.