กำหนดความยาวของลำดับ UTF-8 ที่กำหนดเป็นไบต์แรก ตารางต่อไปนี้แสดงช่วงที่แมปกับความยาวที่เป็นไปได้
Range Length
--------- ------
0x00-0x7F 1
0xC2-0xDF 2
0xE0-0xEF 3
0xF0-0xF4 4
หมายเหตุเกี่ยวกับช่องว่างในตาราง: 0x80-0xBF เป็นไบต์ต่อเนื่อง 0xC0-0xC1 จะเริ่มต้นลำดับที่ยาวเกินไปไม่ถูกต้อง 0xF5-0xFF จะส่งผลให้ codepoint เกิน Unicode สูงสุด
เขียนโปรแกรมหรือฟังก์ชั่นที่รับไบต์แรกของลำดับ UTF-8 เป็นอินพุตและเอาต์พุตหรือส่งคืนความยาวของลำดับ I / O ยืดหยุ่นได้ ตัวอย่างเช่นการป้อนข้อมูลอาจเป็นตัวเลขตัวอักษร 8 บิตหรือสตริงอักขระหนึ่งตัว คุณสามารถสันนิษฐานได้ว่าไบต์แรกเป็นส่วนหนึ่งของลำดับที่ถูกต้องและอยู่ในช่วงใดช่วงหนึ่งข้างต้น
นี่คือรหัสกอล์ฟ คำตอบที่สั้นที่สุดเป็นไบต์ชนะ
กรณีทดสอบ
0x00 => 1
0x41 => 1
0x7F => 1
0xC2 => 2
0xDF => 2
0xE0 => 3
0xEF => 3
0xF0 => 4
0xF4 => 4