Визначте довжину послідовності байт UTF-8, задавши її перший байт. У наступній таблиці показано, які діапазони відображаються на кожну можливу довжину:
Range Length
--------- ------
0x00-0x7F 1
0xC2-0xDF 2
0xE0-0xEF 3
0xF0-0xF4 4
Примітки щодо прогалин у таблиці: 0x80-0xBF - це байти продовження, 0xC0-0xC1 розпочнеть надмірну, недійсну послідовність, 0xF5-0xFF призведе до кодової точки, що перевищує максимум Unicode.
Напишіть програму або функцію, яка приймає перший байт послідовності байтів UTF-8 як вхід і вихід або повертає довжину послідовності. Введення / виведення гнучко. Наприклад, вхід може бути числом, 8-бітовим символом або односимвольним рядком. Можна припустити, що перший байт є частиною дійсної послідовності і потрапляє в один із діапазонів вище.
Це код гольфу. Виграє найкоротша відповідь у байтах.
Тестові справи
0x00 => 1
0x41 => 1
0x7F => 1
0xC2 => 2
0xDF => 2
0xE0 => 3
0xEF => 3
0xF0 => 4
0xF4 => 4