Вопрос:

1. В кодировке Unicode каждый символ кодируется 16 битами. Ученик написал текст (в нём нет лишних пробелов): «Мои любимые герои мультфильмов: Шрек, Пумба, Маугли, Рататуй, Пиноккио, Винни-Пух, Белоснежка, Малефисента, Человек-паук, Конёк-Горбунок». Ученик удалил из списка имя героя одного мультфильма, а также лишние запятую и пробел – два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 18 байт меньше, чем размер исходного предложения. Напишите в ответе удалённое имя героя мультфильма.

Ответ:

Решение:

В кодировке Unicode каждый символ занимает 16 бит, что равно 2 байтам.

Удаление одного имени героя, одной запятой и одного пробела привело к уменьшению текста на 18 байт. Это означает, что удалённая часть текста (имя героя вместе с запятой и пробелом) занимает 18 байт.

Так как имя героя было удалено из списка, оно содержало в себе один символ (имя), одну запятую и один пробел. Значит, имя героя занимает 18 байт - 2 байта (запятая + пробел) = 16 байт.

Поскольку каждый символ занимает 2 байта, то имя героя состоит из 16 байт / 2 байта/символ = 8 символов.

Ищем в списке имя, состоящее из 8 символов: Малефисента (11 символов), Человек-паук (12 символов), Конёк-Горбунок (14 символов). Неверно. Считаем символы в именах:

  • Шрек (5)
  • Пумба (5)
  • Маугли (6)
  • Рататуй (7)
  • Пиноккио (9)
  • Винни-Пух (10)
  • Белоснежка (10)
  • Малефисента (11)
  • Человек-паук (12)
  • Конёк-Горбунок (14)

Считаем, что в удаленном имени героя было 8 символов. Имена из списка: Шрек (5), Пумба (5), Маугли (6), Рататуй (7), Пиноккио (9), Винни-Пух (10), Белоснежка (10), Малефисента (11), Человек-паук (12), Конёк-Горбунок (14).

Проверим, если удалить имя "Рататуй" (7 символов), запятую и пробел. Удаляется 7 символов имени + 1 запятая + 1 пробел = 9 символов. Каждый символ - 2 байта. 9 символов * 2 байта/символ = 18 байт. Это соответствует условию.

Ответ: Рататуй

Похожие