<prompt> Kwa kuzingatia mkusanyiko kamili data inayowakilisha data, rudisha ikiwa ni usimbaji UTF-8 halali yaani, inatafsiri kwa mfuatano wa herufi halali zilizosimbwa za UTF-8.Herufi katika UTF8 inaweza kuwa na urefu wa kuanzia baiti 1 hadi 4, ikizingatia sheria zifuatazo:1. Kwa herufi 1-baiti, biti ya kwanza ni 0, ikifuatiwa na msimbo wake wa Unicode.2. Kwa herufi n-baiti, biti n za kwanza zote ni za mtu, biti n 1 ni 0, ikifuatiwa na baiti n - 1 yenye 2 muhimu zaidi. bits kuwa 10.Hivi ndivyo usimbaji wa UTF-8 ungefanya kazi: Idadi ya Baiti Mlolongo wa Octet wa UTF-8 wawili --- --- 1 0xxx 2 110xxx 10xxx 3 1110xxx 10xxx 10xxx 4 11110xxx 10xxx 10xxx 10xxxx inaashiria kidogo katika umbo la binary ya baiti ambayo inaweza kuwa 0 au 1.Kumbuka: Ingizo ni safu kamili ya nambari kamili. Bati 8 tu muhimu zaidi za kila nambari ndizo zinazotumika kuhifadhi data. Hii inamaanisha kuwa kila nambari kamili inawakilisha baiti 1 tu ya data.Mfano wa 1:Ingizo: data 197,130,1Pato: kweliMaelezo: data inawakilisha mfuatano wa pweza: 11000101 10000010 00000001.Ni usimbaji halali wa utf-8 kwa herufi ya baiti 2 ikifuatiwa na herufi ya baiti 1.Mfano wa 2:Ingizo: data 235,140,4Pato: si kweliMaelezo: data iliwakilisha mfuatano wa pweza: 11101011 10001100 00000100.Biti 3 za kwanza zote ni za mtu na biti ya 4 ni 0 inamaanisha ni herufi ya baiti 3.Byte inayofuata ni muendelezo wa byte ambayo huanza na 10 na hiyo ni sawa.Lakini muendelezo wa pili hauanza na 10, kwa hivyo ni batili.Vikwazo: 1 data.length 2 104 0 datai 255  <response>: chatudef validUtf8data: hesabu 0 kwa byte katika data: ikiwa hesabu 0: ikiwa byte 5 0b110: hesabu 1 elif byte 4 0b1110: hesabu 2 elif byte 3 0b11110: hesabu 3 elif byte 7: kurudi Uongo kwingine: ikiwa byte 6 ! 0b10: kurudi Uongo hesabu - 1 hesabu ya kurudi 0maelezoTunarudia kupitia kila baiti katika safu ya data iliyotolewa. Ikiwa kwa sasa hatuchakati herufi za baiti nyingi hesabu 0, tunaangalia ikiwa ni usimbaji wa herufi za 1-baiti, 2-baiti, 3-baiti au 4, na kusasisha hesabu ipasavyo. Kwa herufi 1-baiti, tunaangalia tu ikiwa biti ya kwanza ni 0.Iwapo baiti ya sasa ni sehemu ya herufi za baiti nyingi hesabu 0, tunaangalia ikiwa ni baiti halali ya kuendelea kwa kuangalia ikiwa biti zake mbili muhimu zaidi ni 10. Ikiwa si mwendelezo baiti halali, rudisha false.Hatimaye, rudisha kweli ikiwa hesabu ni 0 mwishoni mwa marudio, yaani, hakuna mfuatano wa baiti nyingi ambao haujakamilika. 