Чтобы решить эту задачу, давайте разберем все шаги подробно.
Понимание условий задачи:
- У нас есть текст, в котором перечислены 9 городов: "Шуя", "Руза", "Тверь", "Москва", "Коломна", "Кострома", "Ярославль", "Звенигород", "Александров".
- При написании этого текста в одной из кодировок Unicode размер нового предложения оказался на 14 байт меньше.
Определение размеров:
- В кодировке UTF-16, которая использует 16 бит (то есть 2 байта) на каждый символ, мы можем посчитать размер каждого символа в байтах.
- Подсчитать количество символов в предложении, чтобы понять, как влияет вычеркнутое слово.
Посчитаем длину строки без одного слова:
- Первоначальная строка: "Я знаю девять городов Шуя Руза тверь москва коломна кострома ярославль Звенигород александров".
- Перечисленные города: "Шуя", "Руза", "Тверь", "Москва", "Коломна", "Кострома", "Ярославль", "Звенигород", "Александров" — всего 9 городов.
Теперь давайте проверим, какое слово мы можем исключить, чтобы получить разницу в 14 байт.
- Сравнение и проверка:
- Вычислим размер текста с каждым городом и без него. Если символы удалены, то соответствующий размер, занимаемый словами, должен составлять ровно 14 байт в кодировке UTF-16.
- Мы знаем, что 14 байт = 7 символов в UTF-16, так как 14 / 2 = 7.
Теперь попробуем вычеркнуть каждый из городов и посмотреть, если 7 символов будут соответствовать размеру.
Анализируем длину городов:
- "Шуя" - 4 символа
- "Руза" - 4 символа
- "Тверь" - 5 символов
- "Москва" - 6 символов
- "Коломна" - 7 символов
- "Кострома" - 8 символов
- "Ярославль" - 10 символов
- "Звенигород" - 10 символов
- "Александров" - 11 символов
Найдем подбирающееся слово:
- Из всех перечисленных городов, только "Коломна" содержит ровно 7 символов, что идеально подходит под наше условие.
Таким образом, вычеркнутое слово — "Коломна".