Контрольные задания > Задача 2: В кодировке UTF-32 каждый символ кодируется 32 битами. Саша написал текст (в нем нет лишних пробелов): «Мята, тыква, фасоль, артишок, патиссон, лагенария - овощи». Ученик вычеркнул из списка название одного из овощей. Заодно он вычеркнул ставшие лишними запятые и пробелы – два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 28 байтов меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название овоща.
Вопрос:
Задача 2: В кодировке UTF-32 каждый символ кодируется 32 битами. Саша написал текст (в нем нет лишних пробелов): «Мята, тыква, фасоль, артишок, патиссон, лагенария - овощи». Ученик вычеркнул из списка название одного из овощей. Заодно он вычеркнул ставшие лишними запятые и пробелы – два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 28 байтов меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название овоща.
Ответ:
Решение:
1. Определяем количество символов в вычеркнутом слове, включая запятую и пробел. Так как размер уменьшился на 28 байт, а каждый символ в UTF-32 кодируется 4 байтами (32 бита), то было удалено 28 / 4 = 7 символов.
2. Перебираем слова, чтобы найти слово, которое вместе с запятой и пробелом содержит 7 символов:
* Мята - 4 символа
* Тыква - 5 символов
* Фасоль - 6 символов
* Артишок - 7 символов
* Патиссон - 8 символов
* Лагенария - 9 символов
После каждого слова идет запятая и пробел, которые также нужно считать: ", " - 2 символа.
3. Проверяем слова на соответствие:
* Мята, -> 4 + 2 = 6
* Тыква, -> 5 + 2 = 7
* Фасоль, -> 6 + 2 = 8
* Артишок, -> 7 + 2 = 9
* Патиссон, -> 8 + 2 = 10
* Лагенария, -> 9 + 2 = 11
Не сходится. Где-то ошибка.
Рассмотрим более внимательно условие. Нам говорят, что было удалено 28 байтов. Поскольку кодировка UTF-32, это 28 / 4 = 7 символов. Из списка удален один овощ, а также запятая и пробел после него. Ищем слово, которое вместе с запятой и пробелом дает 7 символов.
* Мята, -> 4 + 2 = 6 символов.
* Тыква, -> 5 + 2 = 7 символов.
* Фасоль, -> 6 + 2 = 8 символов.
* Артишок, -> 7 + 2 = 9 символов.
* Патиссон, -> 8 + 2 = 10 символов.
* Лагенария, -> 9 + 2 = 11 символов.
Таким образом, удалено слово "Тыква".
Ответ: Тыква