Défi:
Contributions:
- Une chaîne contenant de l'ASCII imprimable (hors espaces, tabulations et sauts de ligne)
- Un booléen †
Production:
Les parties de la chaîne sont divisées en quatre groupes:
- Minuscules
- Lettres capitales
- Chiffres
- Autre
Sur la base du booléen, nous générons soit l'occurrence la plus élevée d'un (ou plusieurs) de ces quatre groupes, soit la plus faible, remplaçant tout le reste par des espaces.
Par exemple:
Entrée: "Just_A_Test!"
Il contient:
- 3 lettres majuscules: JAT
- 6 lettres minuscules: ustest
- 0 chiffres
- 3 autres:__!
Ce seraient les sorties pour true
ou false
:
true: " ust est "
// digits have the lowest occurrence (none), so everything is replaced with a space
false: " "
(Remarque: Vous êtes autorisé à ignorer les espaces de fin, les sorties peuvent donc également être " ust est"
et ""
respectivement.)
Règles du défi:
- L'entrée ne sera jamais vide ou contiendra des espaces, et ne sera constituée que d'ASCII imprimables dans la plage
33-126
ou à'!'
travers'~'
. - Vous êtes autorisé à prendre les entrées et / ou sorties sous forme de tableau de caractères ou de liste si vous le souhaitez.
- † Deux valeurs cohérentes et distinctes pour le booléen sont autorisées:
true
/false
;1
/0
;'H'
/'L'
;"highest"
/"lowest"
; etc. Notez que ces valeurs distinctes doivent être utilisées (quelque peu) comme un booléen! Il n'est donc pas autorisé de saisir deux programmes complets, l'un qui donne le résultat correct pourtrue
et l'autre pourfalse
, puis d'avoir uniquement votre code réel<run input with parameter>
. Nouvelle faille par défaut pertinente que j'ai ajoutée, bien qu'elle puisse encore utiliser beaucoup de réglages finaux concernant les définitions. - Si l'occurrence de deux ou plusieurs groupes est la même, nous générons toutes ces occurrences.
- Les espaces de fin nécessaires sont facultatifs, et une seule nouvelle ligne de fin est également facultative. Les espaces de tête nécessaires sont obligatoires. Et tout autre espace de tête ou nouvelle ligne n'est pas autorisé.
Règles générales:
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues non-golfeur de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Les règles standard s'appliquent à votre réponse, vous êtes donc autorisé à utiliser STDIN / STDOUT, des fonctions / méthodes avec les paramètres appropriés, des programmes complets. Ton appel.
- Failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code.
- Veuillez également ajouter une explication si nécessaire.
Cas de test:
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")
H
et 9
font partie des "moins".
"max"
-elle être / "min"
, qui est ensuite utilisée pour Math[b]
faire référence à Math.max
ou Math.min
?
b?"max":"min"
dans votre réponse .. C'est une ligne fine, je suppose, peut-être que je devrais simplement utiliser une valeur truey / falsey la prochaine fois ..
"H "
- on et" 9 "
(avec les espaces appropriés) être émis à la place de"H 9"
?