Desafío:
Entradas:
- Una cadena que contiene ASCII imprimible (excluyendo espacios, tabulaciones y nuevas líneas)
- Un booleano †
Salida:
Las partes de la cadena se dividen en cuatro grupos:
- Letras minusculas
- Letras mayúsculas
- Dígitos
- Otro
Con base en el valor booleano, mostramos la aparición más alta de uno (o varios) de estos cuatro grupos, o la más baja, reemplazando todo lo demás con espacios.
Por ejemplo:
Entrada: "Just_A_Test!"
Contiene:
- 3 letras mayúsculas: JAT
- 6 letras minúsculas: ustest
- 0 dígitos
- 3 otros:__!
Estos serían los resultados para trueo false:
true: " ust est "
// digits have the lowest occurrence (none), so everything is replaced with a space
false: " "
(Nota: puede ignorar los espacios finales, por lo que las salidas también pueden ser " ust est"y ""respectivamente).
Reglas de desafío:
- La entrada nunca estará vacía o contendrá espacios, y solo consistirá en ASCII imprimible en el rango
33-126o a'!'través'~'. - Se le permite tomar la entrada y / o salida como matriz de caracteres o lista si lo desea.
- † Se permiten dos valores consistentes y distintos para el booleano:
true/false;1/0;'H'/'L';"highest"/"lowest"; ¡Tenga en cuenta que estos valores distintos deben usarse (algo) como un valor booleano! Por lo tanto, no está permitido ingresar dos programas completos, uno que proporcione el resultado correcto paratruey el otro parafalse, y luego que solo tenga su código real<run input with parameter>. La nueva laguna predeterminada relevante que he agregado, aunque todavía puede usar una gran cantidad de ajustes con respecto a las definiciones. - Si la ocurrencia de dos o más grupos es la misma, mostramos todas esas ocurrencias.
- Los espacios finales necesarios son opcionales, y una nueva línea final también es opcional. Los espacios iniciales necesarios son obligatorios. Y no se permiten otros espacios iniciales o nuevas líneas.
Reglas generales:
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de code-golf lo desanimen a publicar respuestas con lenguajes que no sean codegolfing. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Se aplican reglas estándar para su respuesta, por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados, programas completos. Tu llamada.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código.
- Además, agregue una explicación si es necesario.
Casos de prueba:
Inputs: Output:
"Just_A_Test!", true " ust est " (or " ust est")
"Just_A_Test!", false " " (or "")
"Aa1!Bb2@Cc3#Dd4$", either "Aa1!Bb2@Cc3#Dd4$"
"H@$h!n9_!$_fun?", true " @$ ! _!$_ ?"
"H@$h!n9_!$_fun?", false "H 9 " (or "H 9")
"A", true "A"
"A", false " " (or "")
"H.ngm.n", true " ngm n"
"H.ngm.n", false " " (or "")
"H.ngm4n", false "H. 4 " (or "H. 4")
Hy 9son parte de la "menor cantidad".
"max"/ "min", que luego se usa Math[b]para referirse a Math.maxo Math.min?
b?"max":"min"tu respuesta ... Supongo que es una línea muy fina, tal vez debería usar un valor verdadero / falso la próxima vez ...
"H "y" 9 "(con espacios apropiados) en lugar de"H 9"?