Вызов:
Входы:
- Строка, содержащая печатный ASCII (исключая пробелы, табуляции и новые строки)
- Логическое †
Выход:
Части Строки делятся на четыре группы:
- Строчные буквы
- Заглавные буквы
- Digits
- Другой
На основе логического значения мы либо выводим наибольшее вхождение одной (или нескольких) из этих четырех групп, либо наименьшее, заменяя все остальное пробелами.
Например:
Входные данные: "Just_A_Test!"
содержит:
- 3 заглавные буквы: JAT
- 6 строчных букв: ustest
- 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"в своем ответе .. Это тонкая грань, я думаю, может быть, я должен просто использовать значение truey / falsey в следующий раз ..
"H "и" 9 "вместо (с соответствующими пробелами) выводить"H 9"?