Загрузка данных
Задача 1
Напишите программу, которая считывает из консоли список целых чисел, разделенных пробелом, и выводит количество уникальных чисел в этом списке.
Входные данные: Одна строка с целыми числами через пробел.
Выходные данные: Одно целое число – количество уникальных элементов.
Задача 2
Считайте с клавиатуры две строки. Напишите программу, которая находит все символы, которые встречаются в обеих строках одновременно, и выводит их в виде отсортированного списка без повторов.
Входные данные: Две строки текста (каждая с новой строки).
Выходные данные: Список общих символов, отсортированный по алфавиту.
Задача 3
В текстовом файле text.txt записан текст. Напишите программу, которая считывает файл, разбивает его на отдельные слова (приводя их к нижнему регистру) и выводит количество уникальных слов.
Входные данные: Файл text.txt.
Выходные данные: Одно целое число – количество уникальных слов.
Задача 4
Считайте две строки, содержащие слова через пробел. Преобразуйте их в множества слов в нижнем регистре. Найдите:
- Слова, которые есть только в первом тексте.
- Слова, которые есть только во втором тексте.
Объедините эти два результата в единый отсортированный список, оставив только слова, длина которых строго больше 3 символов.
Входные данные: Две строки текста с текстом через пробел.
Выходные данные: Отсортированный список слов
Задача 5
Дана символьная матрица размера NхN. Напишите программу, которая проверяет, верно ли, что в каждой строке и в каждом столбце все символы являются уникальными (не повторяются). Проверка должна выполняться путем сравнения длины текущей строки/столбца с длиной её set.
Входные данные: С начала число N, затем N строк матрицы (символы через пробел).
Выходные данные: True (если все строки и столбцы содержат только уникальные символы) или False.
Задача 6
Напишите программу, которая считывает список чисел и удаляет из него дубликаты, сохраняя порядок их первого появления. Дополнительно для каждого уникального элемента нужно посчитать, сколько раз он встретился в исходном списке. Результат сохраните в список кортежей (число, количество).
Входные данные: Список чисел через пробел.
Выходные данные: Список кортежей (элемент, количество) в порядке первого появления.
Задача 7
В файле ids.txt в первой строке записаны два числа: MIN_ID и MAX_ID (диапазон допустимых идентификаторов). Во второй строке записаны ID, которые фактически были зарегистрированы в системе.
Найдите все пропущенные ID из заданного диапазона за одно вычитание множеств. Сформируйте из пропущенных ID список и выведите его в обратном порядке (по убыванию).
Входные данные: Файл ids.txt из двух строк.
Выходные данные: Список, согласно условию задачи.
Задача 8
В файле votes.txt записаны голоса 3 экспертных групп (по одной группе на строку, имена кандидатов через пробел).
Найдите и выведите в виде отсортированных списков:
- Единогласные: кандидаты, упомянутые во всех 3 группах.
- Большинство: кандидаты, упомянутые ровно в 2 группах.
- Уникальные: кандидаты, упомянутые только в 1 группе.
Входные данные: Файл votes.txt из трех строк
Выходные данные: Списки, согласно условию.
Задача 9
Даны K строк чисел. Напишите программу, которая находит элементы, которые встречаются строго в нечётном количестве из этих K строк. Подсказка: Применение оператора ^ к множеству последовательно для каждой строки даёт именно такой результат.
Входные данные: Сначала число K, затем K строк с числами через пробел.
Выходные данные: Отсортированное множество найденных элементов..
Задача 10
Даны два файла с алфавитами: rus.txt (буквы русского алфавита) и eng.txt (буквы английского алфавита).
Программа считывает произвольный текст из файла input.txt и определяет, является ли этот текст:
- Русской панграммой (содержит все буквы из rus.txt).
- Английской панграммой (содержит все буквы из eng.txt).
- Двуязычной панграммой (содержит все буквы обоих алфавитов).
Входные данные: Файлы rus.txt, eng.txt, input.txt.
Выходные данные: Одно из сообщений: "Русская", "Английская", "Двуязычная", "Не панграмма".
Задача 11*
Дана квадратная матрица NхN. Найдите множество чисел, которые присутствуют одновременно:
- В главной диагонали матрицы.
- В побочной диагонали матрицы.
- Хотя бы в одной из строк матрицы как повторяющийся элемент.
Входные данные: Число N, затем N строк по N чисел в каждой.
Выходные данные: Множество найденных элементов.
Задача 12*
Дана система дорог между городами в виде списка ориентированных ребер A-B (из города A в город B).С помощью множеств кортежей (A, B) найдите:
- Все двусторонние дороги (где есть и A-B, и B-A).
- Все «тупиковые» направления (где есть дорога A-B, но нет обратного пути B-A).Выведите двусторонние дороги как отсортированные канонические кортежи (A, B) где A < B.
Входные данные: Строка с парами через пробел вида Москва-Казань Казань-Москва Сочи-Москва.
Выходные данные: Списки односторонних и двусторонних дорог согласно условию задачи.
Задача 13*
Даны перепутанные билеты на кругосветное путешествие, образующие замкнутый цикл (например, A -> B -> C -> A).
- Проверьте с помощью множеств, правда ли, что множество всех городов вылета строго равно множеству всех городов прилета.
- Если да, восстановите полный замкнутый маршрут, начав с города, который идет первым по алфавиту.
Входные данные: Строка билетов вида Москва-Сочи Сочи-Париж Париж-Москва.
Выходные данные: Москва - Сочи - Париж – Москва
Задача 14*
Дана матрица 4х4. Программа должна с помощью set проверить 3 условия:
- Каждая из 4 строк содержит ровно 4 уникальных числа от 1 до 4.
- Каждый из 4 столбцов содержит ровно 4 уникальных числа от 1 до 4.
- Каждый из 4 малых квадратов 2х2 содержит ровно 4 уникальных числа от 1 до 4.
Входные данные: 4 строки по 4 числа в каждой.
Выходные данные: True или False.