{}
это пустой набор. Вы можете использовать ()
или, []
если хотите.
Мы не собираемся строго определять «набор», но наборы все удовлетворяют следующим свойствам:
Наборы следуют обычной математической структуре. Вот несколько важных моментов:
- Наборы не заказаны.
- Нет набора содержит себя.
- Элементы либо в наборе, либо нет, это логическое значение. Поэтому элементы набора не могут иметь кратности (то есть элемент не может быть в наборе несколько раз).
- Элементы набора также являются множествами и
{}
являются единственным примитивным элементом.
задача
Напишите программу / функцию, которая определяет, равны ли два набора.
вход
Два допустимых набора через стандартный ввод или аргумент функции. Формат ввода потерян в пределах разумного.
Некоторые действительные входные данные:
{} {{}}
{{},{{}}} {{{{{},{{}}}}}}
{{},{{},{{}}}} {{{},{{}}},{{{{{},{{}}}}}}}
Неверные данные:
{{} {} Brackets will always be balanced.
{{},{}} {} Set contains the same element twice
Вывод
Истинное значение, если входы равны, иначе ложно.
Контрольные примеры
Ваша заявка должна отвечать правильно для всех допустимых входных данных, а не только для тестовых случаев. Они могут быть обновлены в любой момент.
Truthy:
{} {}
{{},{{}}} {{{}},{}}
{{},{{},{{{}},{}}}} {{{{},{{}}},{}},{}}
Falsy:
{} {{}}
{{},{{},{{{}},{}}}} {{{{}}},{},{{}}}
{{},{{}},{{{}}},{{},{{}}}} {}
счет
Дополнительные правила
Было добавлено дополнительное правило, полностью запрещающее неупорядоченные итерируемые типы. Они слишком распространены и слишком упрощают эту задачу. Не стесняйтесь оставлять ответы, которые нарушают это, просто укажите, что они были сделаны до изменения правила.
==
в Юлия, 2 байта, frozenset.__eq__
в Python 16 байтов и т. Д.).
See the comments for an explanation.
Пожалуйста, не делай этого. Комментарии нестабильны и уходят очень легко, так что важная штука идет в теле поста