Строки, байты и руны: модель UTF-8 в Go
Содержание курса
Лимиты никнейма
При регистрации в сервисе пользователь выбирает никнейм — строку без пробелов, которая может содержать символы из самых разных письменностей мира. Поскольку разные символы занимают разное число байт в кодировке UTF-8, одна и та же строка может укладываться в один лимит, но нарушать другой.
Сервис применяет два независимых ограничения: на число байт и на число рун (кодовых точек Unicode). Никнейм считается допустимым лишь тогда, когда он не превышает оба лимита одновременно — нарушение хотя бы одного из них ведёт к отказу.
Что нужно сделать
Допишите nicknameStats. Функция получает никнейм и лимиты по рунам и байтам. Она должна вернуть фактическое число байт, число рун и признак того, что строка укладывается сразу в оба лимита. Используйте средства подсчёта из урока. Вход содержит корректный UTF-8; руны здесь — кодовые точки Unicode.
Формат ввода
В первой строке никнейм без пробелов. Во второй — два неотрицательных целых числа: сначала лимит рун, затем лимит байт.
Формат вывода
Одна строка: bytes=B runes=R accepted=yes или bytes=B runes=R accepted=no.
Пример
Ввод:
Привет
6 12
Вывод:
bytes=12 runes=6 accepted=yes
О данных в ответах
Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.
- Тест 1Ввод
alex 8 8
Ожидаемый выводbytes=4 runes=4 accepted=yes
Как проверяется решение
Сравнение вывода: Правила исходной проверяющей системы.
Отправьте решение, чтобы увидеть результаты тестов.
