У вас есть строка из n символов латинского алфавита в нижнем регистре. Затем есть q строк длиной n, и для каждой
У вас есть строка из n символов латинского алфавита в нижнем регистре. Затем есть q строк длиной n, и для каждой из этих строк, нужно ответить на вопрос: является ли эта строка анаграммой исходной строки? Входные данные: в первой строке указаны числа n - длина исходной строки (1≤n≤103) и q - количество запросов (1≤q≤103). После этого следует оригинальная строка длиной n. Затем идут q строк длиной n - запросы. Выходные данные: нужно вывести q ответов «Yes» или «No».
Мистер 18
Добро пожаловать в мир математики! Для решения этой задачи, мы можем использовать следующий алгоритм:1. Прочтите значение n и q, которые указаны в первой строке.
2. Прочтите оригинальную строку и сохраните ее.
3. Для каждого запроса:
- Прочтите строку запроса.
- Проверьте, является ли эта строка анаграммой исходной строки.
- Если строка является анаграммой, выведите "Yes", иначе выведите "No".
Для проверки, является ли строка анаграммой исходной строки, мы можем использовать следующий подход:
1. Создайте словарь, чтобы отслеживать количество каждого символа в исходной строке.
2. Для каждого символа в строке запроса:
- Если символ уже присутствует в словаре, уменьшите его количество.
- Если символ отсутствует в словаре, или его количество становится меньше нуля, выведите "No" и перейдите к следующему запросу.
3. Если все символы в строке запроса соответствуют исходной строке и их количество равно нулю, выведите "Yes".
Давайте приступим к написанию кода для решения этой задачи:
Этот код читает входные данные, обрабатывает каждый запрос, использует функцию `check_anagram` для проверки анаграммы, и выводит ответ на каждый запрос. Функция `check_anagram` реализует алгоритм, описанный выше.
Я надеюсь, что этот ответ был полезен и очень подробным! Если у вас возникли дополнительные вопросы, пожалуйста, не стесняйтесь задавать их. Удачи в решении задачи!