<prompt> Kwa kuzingatia vekta mbili za nambari kamili v1 na v2, tumia kiboreshaji ili kurejesha vipengee vyake kwa kupokezana.Tekeleza darasa la ZigzagIterator: ZigzagIteratorOrodha v1, Orodha v2 huanzisha kitu kwa vekta mbili v1 na v2. boolean hasNext hurejesha true ikiwa kiboreshaji bado kina vipengele, na false vinginevyo. int next hurejesha kipengee cha sasa cha kirudia tena na kusogeza kiboreshaji hadi kipengee kinachofuata.Mfano wa 1:Ingizo: v1 1,2, v2 3,4,5,6Pato: 1,3,2,4,5,6Maelezo: Kwa kupiga simu tena mara kwa mara hadi hasNext irudishe sivyo, mpangilio wa vipengele vinavyorejeshwa na kinachofuata unapaswa kuwa: 1,3,2,4,5,6.Mfano wa 2:Ingizo: v1 1, v2 Pato: 1Mfano wa 3:Ingizo: v1 , v2 1Pato: 1Vikwazo: 0 v1.length, v2.length 1000 1 v1.length v2.length 2000 -231 v1i, v2i 231 - 1Fuatilia: Je, iwapo utapewa vekta k? Je, msimbo wako unaweza kupanuliwa kwa kadhia kama hizi kwa njia gani?Ufafanuzi wa swali la ufuatiliaji:Agizo la Zigzag halijafafanuliwa kwa uwazi na lina utata kwa matukio k 2. Ikiwa Zigzag haionekani sawa kwako, badilisha Zigzag na Mzunguko.Mfano wa Ufuatiliaji:Ingizo: v1 1,2,3, v2 4,5,6,7, v3 8,9Pato: 1,4,8,2,5,9,3,6,7  <response>: chatudarasa la ZigzagIterator: def __init__binafsi, v1: Orodhaint, v2: Orodhaint: binafsi.v1, binafsi.v2 v1, v2 self.index1, self.index2 0, 0 def nextself - int: ikiwa self.index1 lenself.v1 na self.index1 self.index2 au self.index2 lenself.v2: matokeo self.v1self.index1 index.self.1 1 matokeo ya kurudi ikiwa self.index2 lenself.v2 na self.index2 self.index1 au self.index1 lenself.v1: matokeo self.v2self.index2 binafsi.index2 1 matokeo ya kurudi def hasNextself - bool: return self.index1 lenself.v1 au self.index2 lenself.v2maelezoDarasa la ZigzagIterator limeanzishwa kwa vekta mbili v1 na v2. Mbinu ya hasNext hukagua ikiwa kuna vipengee vilivyosalia katika aidha vekta. Wakati mbinu ya ifuatayo inapoitwa, amua ni vekta gani ya kuchukua kipengele kulingana na fahirisi za sasa zikilinganisha na urefu wa vekta. Ikiwa kuna vipengele zaidi katika vekta ya kwanza au idadi sawa ya vipengele katika zote mbili lakini faharisi ya sasa ya vekta ya kwanza ni chini ya fahirisi ya sasa ya vekta ya pili, tunachukua kipengele kutoka kwa vekta ya kwanza. Vinginevyo, tunachukua kipengele kutoka kwa vector ya pili. Na katika kila hatua, tunasonga index ya vector iliyochaguliwa mbele. Tunaweza kubadilisha vekta kila wakati tunapoamua ni vekta gani ya kuchukua kipengele ili utekelezaji ufanye kazi kwa k vekta 2 mpangilio wa mzunguko. 