Herausforderung:
Eingänge:
- Eine Zeichenfolge mit druckbarem ASCII (ohne Leerzeichen, Tabulatoren und Zeilenumbrüche)
- Ein Boolescher †
Ausgabe:
Die Teile der Zeichenfolge sind in vier Gruppen unterteilt:
- Kleinbuchstaben
- Großbuchstaben
- Ziffern
- Andere
Basierend auf dem Booleschen Wert geben wir entweder das höchste Vorkommen einer (oder mehrerer) dieser vier Gruppen aus oder das niedrigste, wobei wir alles andere durch Leerzeichen ersetzen.
Beispielsweise:
Eingabe: "Just_A_Test!"
Es enthält:
- 3 Großbuchstaben: JAT
- 6 Kleinbuchstaben: ustest
- 0 Ziffern
- 3 weitere:__!
Dies wären die Ausgaben für trueoder false:
true: " ust est "
// digits have the lowest occurrence (none), so everything is replaced with a space
false: " "
(Hinweis: Sie dürfen nachgestellte Leerzeichen ignorieren, daher können die Ausgaben auch " ust est"und sein "".)
Herausforderungsregeln:
- Die Eingabe ist niemals leer oder enthält Leerzeichen und besteht nur aus druckbarem ASCII im Bereich
33-126oder'!'durch'~'. - Sie können die Ein- und / oder Ausgänge als Zeichenfeld oder Liste verwenden, wenn Sie möchten.
- † Es sind zwei beliebige konsistente und unterschiedliche Werte für den Booleschen Wert zulässig:
true/false;1/0;'H'/'L';"highest"/"lowest"; usw. Beachten Sie, dass diese unterschiedlichen Werte (etwas) als Boolescher Wert verwendet werden sollten! Es ist also nicht erlaubt, zwei vollständige Programme einzugeben, eines, das das richtige Ergebnis fürtrueund das andere für liefertfalse, und dann nur Ihren tatsächlichen Code zu haben<run input with parameter>. Relevante neue Standardlücke, die ich hinzugefügt habe, obwohl sie hinsichtlich der Definitionen noch viel Feinabstimmung erfordern kann. - Wenn das Vorkommen von zwei oder mehr Gruppen gleich ist, geben wir alle diese Vorkommen aus.
- Die erforderlichen nachgestellten Leerzeichen sind optional, und eine einzelne nachstehende neue Zeile ist ebenfalls optional. Erforderliche führende Leerzeichen sind obligatorisch. Andere führende Leerzeichen oder Zeilenumbrüche sind nicht zulässig.
Allgemeine Regeln:
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich von Code-Golf-Sprachen nicht davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, für jede Programmiersprache eine möglichst kurze Antwort zu finden. - Für Ihre Antwort gelten Standardregeln. Daher dürfen Sie STDIN / STDOUT, Funktionen / Methode mit den richtigen Parametern und vollständige Programme verwenden. Ihr Anruf.
- Standardlücken sind verboten.
- Fügen Sie nach Möglichkeit einen Link mit einem Test für Ihren Code hinzu.
- Fügen Sie ggf. auch eine Erklärung hinzu.
Testfälle:
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")
Hund 9gehören zu den "Wenigsten".
"max"/ sein "min", auf den dann Math[b]verwiesen wird Math.maxoder Math.min?
b?"max":"min"in Ihrer Antwort behalten . Es ist eine feine Linie, denke ich, vielleicht sollte ich beim nächsten Mal einfach einen Wert für Wahrhaftigkeit / Falschheit verwenden.
"H "und" 9 "(mit entsprechenden Leerzeichen) statt ausgegeben werden"H 9"?