В этой задаче вы и ваши друзья обсуждаете, какой регистр лучше, прописными или строчными? Чтобы это выяснить, вы пишете программу, которая сделает это за вас.
Поскольку esolangs пугают ваших друзей, а подробный код пугает вас, ваш код должен быть максимально коротким.
Примеры
PrOgRaMiNgPuZzLeS & CoDe GoLf
0.52 uppercase
DowNGoAT RiGHtGoAt LeFTGoat UpGoAT
0.58 uppercase
Foo BaR Baz
0.56 lowercase
Характеристики
Ввод будет состоять только из символов ASCII. Все не алфавитные символы должны игнорироваться. Там будет по крайней мере 1 символ каждого случая
Выходные данные должны соответствовать размеру регистра, который наиболее часто встречается над общим количеством буквенных символов. Он должен быть десятичным с точностью не менее 2 десятичных знаков. Если заглавные буквы появляются чаще, вывод должен заканчиваться на uppercase
, или lowercase
.
Там никогда не будет одинаковое количество прописных и строчных символов.
Ответы:
Pyth - 40 байт
Это первый раз, когда я использую векторизованное форматирование строк, что довольно круто.
Тестовый пакет .
источник
JavaScript (ES6) 87 байт
Редактирование 1 байта сохранено thx ETHProductions
Редактирование еще 1 байта сохранено thx l4me
Анонимная функция. Долго, но я не нашел способ играть в гольф больше
Меньше гольфа
источник
&&` ${t-l>l?1-l/t+'upp':l/t+'low'}ercase`
.c=>l+=++t&&c>'Z'
будет работать, я думаю ...?CJam,
4745 байтПопробуйте онлайн.
Не играю в гольф слишком долго ...
объяснение
источник
Japt , 58 байт
(Примечание: SE предварительно удалил специальный символ,
Ö
поэтому, пожалуйста, нажмите на ссылку, чтобы получить правильный код)источник
"[a-z]"
, а второе - на"A-Za-z"
.0.5
равно½
. Вы также можете удалить окончательную кавычку.A=Uf"[a-z]" l /Uf"[A-Za-z]" l)>½?A+" low":1-A+" upp" +`\x80ÖÐ
Вы можете получить необработанную версию последних трех байтов с помощьюOc"ercase
.\x80
что Эт ничего не делал, иÖÐ
произвел "случай" ... Может быть, некоторые инвизи-чары, которые были усечены? Кстати, предоставил мой собственный мод, спасибо за советы"\w"
просто соответствует всемw
s и"\\w"
соответствует всемA-Za-z0-9_
. Поэтому я думаю, вам нужно сохранить"[a-z]"
.R ,
133 123 118 108 106 105104 байтБлагодаря байту @ ovs уложилось в 10 байт, 8 - благодаря @Giuseppe и 10 - благодаря @ngm. На данный момент это действительно совместная работа, где я предоставляю байты, а другие снимают их;)
Попробуйте онлайн!
источник
MATL , 49
50байтИспользует текущую версию (4.1.1) языка, которая является более ранней, чем вызов.
Примеры
объяснение
источник
Юлия,
7674 байтаЭто лямбда-функция, которая принимает строку и возвращает строку. Чтобы вызвать его, присвойте его переменной.
Ungolfed:
Сохранено 2 байта благодаря edc65!
источник
ercase
вместоcase
Perl 6 ,
91 70 69 6361 байтИспользование:
источник
C #, 135 байт
Требуется:
Актуальная функция:
С объяснением:
источник
Python 2,
114110 байтисточник
['upp','low'][n<.5]
с'ulpopw'[n<.5::2]
и более 3 путем замены[n,1-n][n<.5]
сmax(n,1-n)
.Mathematica,
139105 байтПодробный код страшен , но мне придется с этим смириться ...
источник
PHP,
140129 символовМой первый раунд игры в гольф - неплохо для «стандартного» языка, а? :-)
Оригинал:
Сокращено до 129 символов благодаря @manatwork:
С комментариями:
источник
$u+=…
, я полагаю, у вас уже естьerror_reporting
по умолчанию, поэтому заглушить предупреждения. Затем удалить некоторые цитаты:' '.($u<$l?low:upp).ercase
.for
, вы можете удалить скобки вокруг него.for($i=65;$i<91;$u+=$a[$i++])$l+=$a[$i+32];
for
инициализацию управляющей переменной, выполнив цикл 0..26 вместо 65..91:for(;$i<26;$u+=$a[$i+++65])$l+=$a[$i+97];
Рубин, 81 + 1 = 82
С флагом
-p
,К счастью, для чисел от 0 до 1 лексикографическая сортировка аналогична числовой сортировке.
источник
Common Lisp, 132 байта
Попробуйте онлайн!
источник
Гема, 125 знаков
Образец прогона:
источник
Серьезно, 58 байт
Шестнадцатеричный дамп:
Это работает только на загружаемом переводчике ... онлайн все еще не работает.
Объяснение:
источник
Pyth, 45 байт
Попробуйте онлайн. Тестирование.
объяснение
источник
CoffeeScript, 104 символа
Первоначально coffeescript пытался передать предполагаемое возвращаемое значение в качестве аргумента значению «r», что не удалось и было очень раздражающим, поскольку r было числом, а не функцией. Я обошел это, поместив
&&
между утверждениями, чтобы отделить их.источник
Pyth,
5453Один байт сохранен благодаря @Maltysen
Попробуйте онлайн
источник
,<any><any>
является командой из двух арностей, которая аналогична той,[<any><any>)
которая может спасти вас от байтаРубин, 97 знаков
Образец прогона:
источник
05AB1E , 28 байт
Попробуйте онлайн!
источник
Java 8,
136130 байт-6 байт, создающих порт ответа @ProgramFOX 'C # .NET .
Попробуйте онлайн.
Объяснение:
источник
REXX, 144 байта
источник
Perl 5
-p
, 72 байтаПопробуйте онлайн!
источник
Котлин , 138 байт
Код
использование
источник
Pyth,
4039 байтПопробуй здесь
объяснение
источник
PowerShell Core ,
134128 байтПопробуйте онлайн!
Спасибо, Веска , за сохранение шести байтов путем преобразования функции в фильтр!
источник
Tcl , 166 байт
Попробуйте онлайн!
источник
APL (NARS), 58 символов, 116 байтов
тест:
источник
C, 120 байтов
тест и результат:
полученные результаты
Предположим, набор символов Ascii.
источник