Nesse desafio, você e seus amigos estão debatendo sobre qual caso é melhor, maiúsculo ou minúsculo. Para descobrir, você escreve um programa para fazer isso por você.
Como os esolangs assustam seus amigos e o código detalhado o assusta, seu código precisará ser o mais curto possível.
Exemplos
PrOgRaMiNgPuZzLeS & CoDe GoLf
0.52 uppercase
DowNGoAT RiGHtGoAt LeFTGoat UpGoAT
0.58 uppercase
Foo BaR Baz
0.56 lowercase
Especificações
A entrada consistirá apenas em caracteres ASCII. Todos os caracteres não alfabéticos devem ser ignorados. Haverá pelo menos 1 caractere de cada caso
A saída deve ser a quantidade do caso que aparece com mais frequência sobre a quantidade total de caracteres alfabéticos. Deve ser um decimal preciso com pelo menos 2 casas decimais. Se maiúsculas aparecerem com mais frequência, a saída deve terminar com uppercase
, ou lowercase
.
Nunca haverá a mesma quantidade de caracteres maiúsculos e minúsculos.
Respostas:
Pitão - 40 bytes
Esta é a primeira vez que eu já usei formatação de string vetorizada, o que é bem legal.
Conjunto de Teste .
fonte
JavaScript (ES6) 87 bytes
Editar 1 byte salvo thx ETHProductions
Editar mais 1 byte salvo thx l4me
Uma função anônima. Longo, mas não encontrei uma maneira de jogar golfe mais
Menos golfe
fonte
&&` ${t-l>l?1-l/t+'upp':l/t+'low'}ercase`
.c=>l+=++t&&c>'Z'
funcionaria, eu acho ...?CJam,
4745 bytesExperimente online.
Não jogar golfe por muito tempo ...
Explicação
fonte
Japonês , 58 bytes
(Observação: o SE retirou um caractere especial antes
Ö
, então clique no link para obter o código adequado)fonte
"[a-z]"
e o segundo por"A-Za-z"
.0.5
é igual a½
. Você também pode remover as aspas finais.A=Uf"[a-z]" l /Uf"[A-Za-z]" l)>½?A+" low":1-A+" upp" +`\x80ÖÐ
Você pode obter a versão bruta dos últimos três bytes comOc"ercase
.\x80
não pareceu fazer nada, eÖÐ
produziu "case" ... Talvez alguns caracteres invisíveis que foram truncados? Btw, desde o meu próprio mod, obrigado pelas dicas #"\w"
simplesmente corresponde a todos osw
s, e"\\w"
combina todosA-Za-z0-9_
. Então eu acho que você precisará manter"[a-z]"
.R ,
133 123 118 108 106 105104 bytesGolpeou 10 bytes graças a @ ovs, 8 graças a @ Giuseppe e 10 novamente a @ngm. Neste ponto, é realmente um esforço colaborativo em que eu forneço os bytes e outros os tiram;)
Experimente online!
fonte
MATL , 49
50bytesUsa a versão atual (4.1.1) do idioma, anterior ao desafio.
Exemplos
Explicação
fonte
Julia,
7674 bytesEsta é uma função lambda que aceita uma string e retorna uma string. Para chamá-lo, atribua-o a uma variável.
Ungolfed:
Economizou 2 bytes graças a edc65!
fonte
ercase
vez decase
Perl 6 ,
91 70 69 6361 bytesUso:
fonte
C #, 135 bytes
Requer:
Função real:
Com explicação:
fonte
Python 2,
114110 bytesfonte
['upp','low'][n<.5]
por'ulpopw'[n<.5::2]
e mais 3 substituindo[n,1-n][n<.5]
pormax(n,1-n)
.Mathematica,
139105 bytesCódigo detalhado é assustador , mas vou ter que viver com ele ...
fonte
PHP,
140129 caracteresMinha primeira partida de golfe - nada mal para um idioma 'padrão', não é? :-)
Original:
Encurtado para 129 caracteres graças a @manatwork:
Com comentários:
fonte
$u+=…
, suponho que você já tenha oerror_reporting
padrão, silenciando avisos. Em seguida, retire algumas citações:' '.($u<$l?low:upp).ercase
.for
, poderá remover os aparelhos ao redor dela.for($i=65;$i<91;$u+=$a[$i++])$l+=$a[$i+32];
for
inicialização da variável de controle fazendo um loop de 0..26 em vez de 65..91:for(;$i<26;$u+=$a[$i+++65])$l+=$a[$i+97];
Ruby, 81 + 1 = 82
Com bandeira
-p
,É uma sorte que, para números entre 0 e 1, a classificação lexicográfica seja igual à classificação numérica.
fonte
Lisp comum, 132 bytes
Experimente online!
fonte
Gema, 125 caracteres
Exemplo de execução:
fonte
Sério, 58 bytes
Hex Dump:
Funciona apenas no intérprete para download ... o online ainda está quebrado.
Explicação:
fonte
Pitão, 45 bytes
Experimente online. Suíte de teste.
Explicação
fonte
CoffeeScript, 104 caracteres
A coffeescript estava inicialmente tentando passar o valor de retorno pretendido como argumento para o valor "r", que falhou e foi super irritante porque r era um número, não uma função. Eu consegui contornar isso colocando um
&&
entre as instruções para separá-las.fonte
Pyth,
5453Um byte salvo graças a @Maltysen
Experimente online
fonte
,<any><any>
é um comando de dois arity que é o mesmo que[<any><any>)
o que pode poupar um byteRuby, 97 caracteres
Exemplo de execução:
fonte
05AB1E , 28 bytes
Experimente online!
fonte
Java 8,
136130 bytes-6 bytes criando uma porta da resposta C # .NET do @ProgramFOX ' .
Experimente online.
Explicação:
fonte
REXX, 144 bytes
fonte
Perl 5
-p
, 72 bytesExperimente online!
fonte
Kotlin , 138 bytes
Código
Uso
fonte
Pitão,
4039 bytesExperimente aqui
Explicação
fonte
Núcleo do PowerShell ,
134128 bytesExperimente online!
Obrigado, Veskah , por salvar seis bytes convertendo a função em um filtro!
fonte
Tcl , 166 bytes
Experimente online!
fonte
APL (NARS), 58 caracteres, 116 bytes
teste:
fonte
C, 120 bytes
teste e resultado:
resultados
Supõe o conjunto de caracteres Ascii.
fonte