Учитывая список целых чисел, создайте логическую маску так, чтобы истинные индексы могли использоваться для фильтрации различных значений из списка. Какой индекс выбран как истинный, не имеет значения, если только один из них выбран для каждого набора индексов, соответствующих одинаковым значениям.
Входными данными будет непустой список неотрицательных целых чисел в формате, подходящем для вашего языка, а выходными данными будет список логических значений в соответствии с приведенной выше спецификацией. Вам разрешено использовать ваши собственные определения истинных и ложных значений в списке вывода.
В моих примерах ниже я определяю, 1чтобы быть правдивым и 0быть ложным.
[5, 4, 7, 1] Input
[1, 1, 1, 1] Output
Select only the values with with true indicies in the sieve
[5 4 7 1] Contains zero duplicate values
[5, 9, 7, 5, 6, 0, 5]
[0, 1, 1, 1, 1, 1, 0]
[ 9, 7, 5, 6, 0 ]
Тестовые случаи
Когда есть or, это означает, что есть несколько допустимых выходов. Если ...после символа есть завершающий многоточие or, это означает, что не все возможные выходные данные были перечислены.
[0] = [1]
[55] = [1]
[32, 44] = [1, 1]
[0, 0] = [1, 0] or [0, 1]
[9001, 9001, 9001] = [1, 0 , 0] or [0, 1, 0] or [0, 0, 1]
[5, 4, 7, 1] = [1, 1, 1, 1]
[1, 2, 3, 4, 3, 5] = [1, 1, 1, 1, 0, 1] or
[1, 1, 0, 1, 1, 1]
[5, 9, 7, 5, 6, 0, 5] = [1, 1, 1, 0, 1, 1, 0] or
[0, 1, 1, 1, 1, 1, 0] or
[0, 1, 1, 0, 1, 1, 1]
[0, 8, 6, 6, 3, 8, 7, 2] = [1, 1, 1, 0, 1, 0, 1, 1] or
[1, 0, 0, 1, 1, 1, 1, 1] or
[1, 0, 1, 0, 1, 1, 1, 1] or
[1, 1, 0, 1, 1, 0, 1, 1]
[45, 47, 47, 45, 24, 24, 24, 8, 47, 41, 47, 88]
= [1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1] or ...
[154, 993, 420, 154, 154, 689, 172, 417, 790, 175, 790, 790, 154, 172, 175, 175, 420, 417, 154, 175, 172, 175, 172, 993, 689, 993, 993, 790]
= [1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] or ...
правила
- Это код-гольф, поэтому выигрывает самое короткое решение.
- Встроенные разрешены!
- Вам разрешено использовать ваши собственные определения истинных и ложных значений в списке вывода. Если вы решите сделать это, пожалуйста, укажите ваши определения.
- Входными данными будет непустой список неотрицательных целых чисел.
- Вы можете выбрать между выводом только одного из сит или нескольких или даже всех из них. Пока каждое сито действует, оно будет принято.
[0, 8, 6, 6, 3, 8, 7, 2], должны ли[1, 0, 0, 1, 1, 1, 1, 1]быть добавлены в список допустимых результатов?