Determina la lunghezza di una sequenza di byte UTF-8 dato il suo primo byte. La tabella seguente mostra quali intervalli sono mappati per ogni possibile lunghezza:
Range Length
--------- ------
0x00-0x7F 1
0xC2-0xDF 2
0xE0-0xEF 3
0xF0-0xF4 4
Note sugli spazi vuoti nella tabella: 0x80-0xBF sono byte di continuazione, 0xC0-0xC1 darebbe inizio a una sequenza troppo lunga e non valida, 0xF5-0xFF comporterebbe un punto di codice oltre il massimo Unicode.
Scrivi un programma o una funzione che accetta il primo byte di una sequenza di byte UTF-8 come input e output o restituisce la lunghezza della sequenza. L'I / O è flessibile. Ad esempio, l'input può essere un numero, un carattere a 8 bit o una stringa di un carattere. Si può presumere che il primo byte faccia parte di una sequenza valida e rientri in uno degli intervalli sopra indicati.
Questo è il codice golf. Vince la risposta più breve in byte.
Casi test
0x00 => 1
0x41 => 1
0x7F => 1
0xC2 => 2
0xDF => 2
0xE0 => 3
0xEF => 3
0xF0 => 4
0xF4 => 4