最初のバイトが与えられた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ビット文字、または1文字の文字列です。最初のバイトは有効なシーケンスの一部であり、上記の範囲のいずれかに該当すると想定できます。
これはコードゴルフです。バイト単位の最短回答が優先されます。
テストケース
0x00 => 1
0x41 => 1
0x7F => 1
0xC2 => 2
0xDF => 2
0xE0 => 3
0xEF => 3
0xF0 => 4
0xF4 => 4