İlk baytı verilen bir UTF-8 bayt dizisinin uzunluğunu belirleyin. Aşağıdaki tabloda hangi aralıkların her olası uzunluğa eşlendiği gösterilmektedir:
Range Length
--------- ------
0x00-0x7F 1
0xC2-0xDF 2
0xE0-0xEF 3
0xF0-0xF4 4
Tablodaki boşluklarla ilgili notlar: 0x80-0xBF devam baytlarıdır, 0xC0-0xC1 aşırı uzun, geçersiz bir sıra başlatır, 0xF5-0xFF Unicode maksimum değerinin ötesinde bir kod noktasına neden olur.
UTF-8 bayt dizisinin ilk baytını giriş ve çıkış olarak alan veya dizinin uzunluğunu döndüren bir program veya işlev yazın. G / Ç esnektir. Örneğin, girdi bir sayı, 8 bitlik karakter veya bir karakterlik dize olabilir. İlk baytın geçerli bir dizinin parçası olduğunu ve yukarıdaki aralıklardan birine düştüğünü varsayabilirsiniz.
Bu kod golf. Bayt cinsinden en kısa cevap kazanır.
Test senaryoları
0x00 => 1
0x41 => 1
0x7F => 1
0xC2 => 2
0xDF => 2
0xE0 => 3
0xEF => 3
0xF0 => 4
0xF4 => 4