En este desafío, usted y sus amigos están debatiendo sobre qué caso es mejor, ¿mayúsculas o minúsculas? Para averiguarlo, escribe un programa para hacer esto por usted.
Debido a que esolangs asusta a tus amigos, y el código detallado te asusta, tu código deberá ser lo más corto posible.
Ejemplos
PrOgRaMiNgPuZzLeS & CoDe GoLf
0.52 uppercase
DowNGoAT RiGHtGoAt LeFTGoat UpGoAT
0.58 uppercase
Foo BaR Baz
0.56 lowercase
Presupuesto
La entrada consistirá solo en caracteres ASCII. Todos los caracteres no alfabéticos deben ignorarse. Habrá al menos 1 personaje de cada caso
El resultado debe ser la cantidad de mayúsculas y minúsculas que aparece con mayor frecuencia sobre la cantidad total de caracteres alfabéticos. Debe ser un decimal exacto con al menos 2 decimales. Si las mayúsculas aparecen con más frecuencia, la salida debería terminar con uppercase
, o lowercase
.
Nunca habrá la misma cantidad de letras mayúsculas y minúsculas.
Respuestas:
Pyth - 40 bytes
Esta es la primera vez que utilizo el formato de cadena vectorizado que es bastante bueno.
Test Suite .
fuente
JavaScript (ES6) 87 bytes
Editar 1 byte guardado thx ETHProductions
Editar 1 byte guardado thx l4me
Una función anónima. Largo, pero no encontré una manera de jugar golf más
Menos golf
fuente
&&` ${t-l>l?1-l/t+'upp':l/t+'low'}ercase`
.c=>l+=++t&&c>'Z'
¿funcionaría, creo ...?CJam,
4745 bytesPruébalo en línea.
No jugar al golf por mucho tiempo ...
Explicación
fuente
Japt , 58 bytes
(Nota: SE eliminó un carácter especial antes
Ö
, así que haga clic en el enlace para obtener el código correcto)fuente
"[a-z]"
, y la segunda con"A-Za-z"
.0.5
es igual a½
. También puede eliminar las comillas finales.A=Uf"[a-z]" l /Uf"[A-Za-z]" l)>½?A+" low":1-A+" upp" +`\x80ÖÐ
Puede obtener la versión sin procesar de los últimos tres bytes conOc"ercase
.\x80
no parecía hacer nada, yÖÐ
produjo "caso" ... ¿Quizás algunos caracteres invisibles que se truncaron? Por cierto, proporcioné mi propio mod, gracias por los consejos"\w"
simplemente coincide con todosw
s, y"\\w"
coincide con todosA-Za-z0-9_
. Así que creo que tendrás que seguir"[a-z]"
.R ,
133 123 118 108 106 105104 bytesBajó 10 bytes gracias a @ ovs, 8 gracias a @Giuseppe y 10 nuevamente gracias a @ngm. En este punto, es realmente un esfuerzo de colaboración donde proporciono los bytes y otros los quitan;)
Pruébalo en línea!
fuente
MATL , 49
50bytesUtiliza la versión actual (4.1.1) del lenguaje, que es anterior al desafío.
Ejemplos
Explicación
fuente
Julia,
7674 bytesEsta es una función lambda que acepta una cadena y devuelve una cadena. Para llamarlo, asígnelo a una variable.
Sin golf:
¡Guardado 2 bytes gracias a edc65!
fuente
ercase
lugar decase
Perl 6 ,
91 70 69 6361 bytesUso:
fuente
C #, 135 bytes
Requiere:
Función real:
Con explicación:
fuente
Python 2,
114110 bytesfuente
['upp','low'][n<.5]
con'ulpopw'[n<.5::2]
y 3 más reemplazando[n,1-n][n<.5]
conmax(n,1-n)
.Mathematica,
139105bytesEl código detallado da miedo , pero tendré que vivir con él ...
fuente
PHP,
140129 caracteresMi primera ronda de golf, no está mal para un lenguaje 'estándar', ¿eh? :-)
Original:
Acortado a 129 caracteres gracias a @manatwork:
Con comentarios:
fuente
$u+=…
, supongo que ya tieneerror_reporting
por defecto, por lo que silencia las advertencias. A continuación, retire algunas citas:' '.($u<$l?low:upp).ercase
.for
, podría eliminar los corchetes a su alrededor.for($i=65;$i<91;$u+=$a[$i++])$l+=$a[$i+32];
for
inicialización de la variable de control haciendo un bucle 0..26 en lugar de 65..91:for(;$i<26;$u+=$a[$i+++65])$l+=$a[$i+97];
Rubí, 81 + 1 = 82
Con bandera
-p
,Es una suerte que para los números entre 0 y 1, la clasificación lexicográfica sea lo mismo que la clasificación numérica.
fuente
Lisp común, 132 bytes
Pruébalo en línea!
fuente
Gema, 125 caracteres
Ejecución de muestra:
fuente
En serio, 58 bytes
Hex Dump:
Solo funciona en el intérprete descargable ... el en línea todavía está roto.
Explicación:
fuente
Pyth, 45 bytes
Pruébalo en línea. Banco de pruebas.
Explicación
fuente
CoffeeScript, 104 caracteres
coffeescript inicialmente estaba tratando de pasar el valor de retorno previsto como un argumento para el valor "r", que falló y fue súper molesto porque r era un número, no una función. Lo solucioné colocando un
&&
entre las declaraciones para separarlas.fuente
Pyth,
5453Un byte guardado gracias a @Maltysen
Pruébalo en línea
fuente
,<any><any>
es un comando de dos arity que es el mismo[<any><any>)
que puede ahorrarle un byteRuby, 97 caracteres
Ejecución de muestra:
fuente
05AB1E , 28 bytes
Pruébalo en línea!
fuente
Java 8,
136130 bytes-6 bytes creando un puerto de respuesta @ProgramFOX 'C # .NET .
Pruébalo en línea.
Explicación:
fuente
REXX, 144 bytes
fuente
Perl 5
-p
, 72 bytesPruébalo en línea!
fuente
Kotlin , 138 bytes
Código
Uso
fuente
Pyth,
4039 bytesPruébalo aquí
Explicación
fuente
PowerShell Core ,
134128 bytesPruébalo en línea!
¡Gracias, Veskah , por guardar seis bytes al convertir la función en un filtro!
fuente
Tcl , 166 bytes
Pruébalo en línea!
fuente
APL (NARS), 58 caracteres, 116 bytes
prueba:
fuente
C, 120 bytes
prueba y resultado:
resultados
Supone el conjunto de caracteres Ascii.
fuente