Виклик:
Вхідні дані:
- Рядок, що містить ASCII для друку (за винятком пробілів, вкладок та нових рядків)
- Булева †
Вихід:
Частини струни поділяються на чотири групи:
- Букви нижнього регістру
- Великі літери
- Цифри
- Інший
Виходячи з булевого, ми або виводимо найвищий показник однієї (або декількох) цих чотирьох груп, або найнижчий, замінюючи все інше пробілами.
Наприклад:
Введення: "Just_A_Test!"
Він містить:
- 3 JAT
малі літери: ustest
- 6 малі літери: - 0 цифр
- 3 інші:__!
Це будуть виходи для trueабо false:
true: " ust est "
// digits have the lowest occurrence (none), so everything is replaced with a space
false: " "
(Примітка. Ви можете ігнорувати пробіли, тому результати можуть бути " ust est"і ""відповідно.)
Правила виклику:
- Вхід ніколи не буде порожнім або міститиме пробіли, а складається лише з друкованого ASCII в діапазоні
33-126або'!'наскрізь'~'. - Ви можете приймати вхідні та / або вихідні дані як масив символів або список, якщо ви хочете.
- † Дозволяються будь-які дві послідовні та чіткі значення булевих значень:
true/false;1/0;'H'/'L';"highest"/"lowest"; Зауважте, що ці чіткі значення слід використовувати (дещо) як булеві! Тому заборонено вводити дві повні програми, одну, яка дає правильний результат,trueа іншу дляfalse, а потім матимете лише власний код<run input with parameter>. Я додав відповідну нову лазівку за замовчуванням, хоча вона все ще може використовувати багато тонких налаштувань щодо визначень. - Якщо виникнення двох або більше груп однакове, ми виводимо всі ці події.
- Необхідні проміжки проміжки необов’язкові, а також окремий трейлінг нового рядка також необов’язковий. Необхідні провідні проміжки є обов’язковими. І будь-які інші провідні місця або нові рядки заборонені.
Загальні правила:
- Це код-гольф , тому найкоротша відповідь у байтах виграє.
Не дозволяйте мовам з кодовим гольфом відштовхувати вас від публікації відповідей з мов, що не кодують гольф. Спробуйте придумати якомога коротшу відповідь на "будь-яку" мову програмування. - Для вашої відповіді застосовуються стандартні правила , тому вам дозволяється використовувати STDIN / STDOUT, функції / метод з відповідними параметрами, повноцінні програми. Твій дзвінок.
- Лазівки за замовчуванням заборонені.
- Якщо можливо, додайте посилання з тестом для вашого коду.
- Також, будь ласка, додайте пояснення, якщо це необхідно.
Тестові приклади:
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і 9є частиною "найменшої".
"max"/ "min", яке потім використовується Math[b]для позначення Math.maxабо Math.min?
b?"max":"min"своєї відповіді. Думаю, це чітка лінія, можливо, я повинен просто використати значення truthy / falsey наступного разу ..
"H "і" 9 "(з відповідними пробілами) буде виводитися замість"H 9"?