Określ długość sekwencji bajtów UTF-8, biorąc pod uwagę jej pierwszy bajt. Poniższa tabela pokazuje, które zakresy mapują na każdą możliwą długość:
Range Length
--------- ------
0x00-0x7F 1
0xC2-0xDF 2
0xE0-0xEF 3
0xF0-0xF4 4
Uwagi na temat braków w tabeli: 0x80-0xBF są bajtami kontynuacyjnymi, 0xC0-0xC1 uruchomiłoby zbyt długą, niepoprawną sekwencję, 0xF5-0xFF spowodowałoby, że punkt kodowy przekroczyłby maksimum Unicode.
Napisz program lub funkcję, która pobiera pierwszy bajt sekwencji bajtów UTF-8 jako dane wejściowe i wyjściowe lub zwraca długość sekwencji. I / O jest elastyczny. Na przykład wejściem może być liczba, znak 8-bitowy lub ciąg jednego znaku. Możesz założyć, że pierwszy bajt jest częścią prawidłowej sekwencji i należy do jednego z powyższych zakresów.
To jest kod golfowy. Najkrótsza odpowiedź w bajtach wygrywa.
Przypadki testowe
0x00 => 1
0x41 => 1
0x7F => 1
0xC2 => 2
0xDF => 2
0xE0 => 3
0xEF => 3
0xF0 => 4
0xF4 => 4