给定第一个字节,确定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字节序列的第一个字节作为输入,然后输出或返回序列的长度。I / O是灵活的。例如,输入可以是数字,8位字符或一个字符的字符串。您可以假设第一个字节是有效序列的一部分,并且属于上述范围之一。
这是代码高尔夫。以字节为单位的最短答案将获胜。
测试用例
0x00 => 1
0x41 => 1
0x7F => 1
0xC2 => 2
0xDF => 2
0xE0 => 3
0xEF => 3
0xF0 => 4
0xF4 => 4