1) в одной из кодировок Unicode каждый символ кодируется 16 битами. Егор написал
текст (в нём нет лишних пробелов):
«Минск, Гомель, Смоленск, Елец, Геленджик,
Владивосток — города»,
Егор вычеркнул из списка название одного из
городов. Заодно он вычеркнул ставшие лишними
запятые и пробелы — два пробела не должны
идти подряд.
При ЭТОМ размер нового предложения В
данной кодировке оказался на 22 байта меньше,
чем размер исходного предложения. Напишите в
ответе вычеркнутое название города.
Для начала, давайте посчитаем исходный размер текста. Мы знаем, что каждый символ кодируется 16 битами, что равно 2 байтам (1 байт = 8 бит). Текст состоит из следующих символов:
«Минск, Гомель, Смоленск, Елец, Геленджик, Владивосток — города»
Давайте посчитаем количество символов в этом тексте. Отметим также, что запятая и пробел занимают по 1 символу каждый. Таким образом, имеем:
Количество символов: 66
Количество запятых: 7
Количество пробелов: 17
Теперь давайте посчитаем размер нового предложения после удаления лишних символов и пробелов. У нас есть два пробела, которые не должны идти подряд. Посчитаем, сколько из них нужно удалить.
Количество двойных пробелов: 0
Теперь посчитаем общее количество пробелов, которые мы должны удалить:
Количество пробелов: 17
Количество двойных пробелов: 0
Пробелы для удаления (17 - 0) = 17
Учитывая, что каждый пробел занимает 1 символ, мы должны удалить 17 символов. У нас есть 7 запятых, которые мы также должны удалить.
Количество запятых: 7
Теперь давайте вычислим общий размер нового предложения после удаления лишних символов и пробелов. Общий размер нового предложения будет равен исходному размеру минус размер удаляемых символов:
Размер нового предложения = (Количество символов - Количество пробелов для удаления - Количество запятых)
Размер нового предложения = (66 - 17 - 7)
Размер нового предложения = 42
Нам дано, что размер нового предложения в кодировке Unicode, где каждый символ кодируется 16 битами, оказался на 22 байта меньше, чем размер исходного предложения. Это означает, что разница в размере равна 22 байтам. Поскольку каждый символ кодируется 2 байтами, мы можем найти разницу в символах вместо разницы в байтах:
Разница в символах = Разница в размере / 2
Разница в символах = 22 / 2
Разница в символах = 11
Таким образом, нам нужно найти символ, который был вычеркнут из списка городов. Как мы рассчитали ранее, исходный текст содержал 66 символов, а новый текст содержит 42 символа. Разница в символах составляет 11, следовательно, в новом предложении должно быть 11 символов меньше, чем в исходном предложении.
Теперь, когда мы знаем, что исходный текст состоит из 66 символов и новый текст должен состоять из 55 символов (66 - 11), мы можем приступить к определению названия города, которое было вычеркнуто из списка.
Посмотрим на фразу:
«Минск, Гомель, Смоленск, Елец, Геленджик, Владивосток — города»
В исходном предложении города разделены запятыми. Мы должны найти одно название города, которое было вычеркнуто. Поскольку в новом предложении должно быть на 11 символов меньше, чем в исходном, мы можем определить, что одно из названий городов состоит из 11 символов.
Если мы посмотрим на доступные опции городов, то видим следующие названия городов и количество символов в каждом:
- Минск (5 символов)
- Гомель (6 символов)
- Смоленск (8 символов)
- Елец (4 символа)
- Геленджик (9 символов)
- Владивосток (12 символов)
Единственным вариантом, имеющим 11 символов, является "Владивосток". Таким образом, Владивосток - это город, который был вычеркнут из списка.
Таким образом, вычеркнутое название города - "Владивосток".