Wyzwanie:
Wejścia:
- Ciąg zawierający ASCII do wydruku (z wyłączeniem spacji, tabulatorów i nowych wierszy)
- Wartość logiczna †
Wynik:
Części ciągu są podzielone na cztery grupy:
- Małe litery
- Wielkie litery
- Cyfry
- Inny
W oparciu o wartość logiczną albo wypisujemy najwyższe wystąpienie jednej (lub wielu) z tych czterech grup, albo najniższą, zastępując wszystko inne spacjami.
Na przykład:
Wprowadzanie: "Just_A_Test!"
Zawiera:
- 3 duże litery: JAT
- 6 małych liter: ustest
- 0 cyfr
- 3 inne:__!
Byłyby wyjścia dla truelub false:
true: " ust est "
// digits have the lowest occurrence (none), so everything is replaced with a space
false: " "
(Uwaga: możesz ignorować końcowe spacje, więc wyniki mogą być odpowiednio " ust est"i "").
Zasady konkursu:
- Dane wejściowe nigdy nie będą puste ani nie będą zawierać spacji i będą się składały wyłącznie z drukowalnego ASCII w zakresie
33-126lub'!'przez'~'. - Możesz wziąć dane wejściowe i / lub wyjściowe jako tablicę znaków lub listę, jeśli chcesz.
- † Dozwolone są dwie spójne i różne wartości logiczne:
true/false;1/0;'H'/'L';"highest"/"lowest"; itd. Zauważ, że te odrębne wartości powinny być użyte (nieco) jako wartość logiczna! Dlatego nie wolno wprowadzać dwóch kompletnych programów, jednego, który daje poprawny wynik dlatruedrugiegofalse, a drugiego dla , a następnie posiadanie tylko faktycznego kodu<run input with parameter>. Dodałem istotną nową domyślną lukę, chociaż nadal może ona zawierać wiele drobnych korekt dotyczących definicji. - Jeśli wystąpienie dwóch lub więcej grup jest takie samo, wyprowadzamy wszystkie te wystąpienia.
- Niezbędne końcowe spacje są opcjonalne, a pojedyncza nowa linia jest również opcjonalna. Niezbędne pola wiodące są obowiązkowe. I żadne inne wiodące spacje lub nowe linie nie są dozwolone.
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki kod-golfowe zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi odnoszą się standardowe reguły , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem swojego kodu.
- W razie potrzeby dodaj również wyjaśnienie.
Przypadki testowe:
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")
Hi 9są częścią „najmniejsza”.
"max"/ "min", która jest następnie używana jako Math[b]odniesienie Math.maxlub Math.min?
b?"max":"min"odpowiedź. Chyba jest to dobra linia, może następnym razem powinienem użyć wartości true / falsey.
"H "i" 9 "(z odpowiednimi spacjami) wyprowadzać zamiast"H 9"?