<prompt> Tengeneza kihesabu cha kugonga ambacho huhesabu idadi ya vibao vilivyopokelewa katika dakika 5 zilizopita yaani, sekunde 300 zilizopita.Mfumo wako unapaswa kukubali kigezo cha muhuri wa muda katika sekunde uzito wa uzito, na unaweza kudhani kuwa simu zinapigwa kwa mfumo kwa mpangilio wa matukio yaani, muhuri wa muda unaongezeka mara moja. Vipigo kadhaa vinaweza kufika takriban kwa wakati mmoja.Tekeleza darasa la HitCounter: HitCounter Huanzisha kipengee cha mfumo wa kaunta ya hit. batili hitint timestamp Hurekodi wimbo uliotokea kwa muhuri wa muda katika sekunde. Vipigo kadhaa vinaweza kutokea kwa muhuri wa muda sawa. int getHitsint timestamp Hurejesha idadi ya vibao katika dakika 5 zilizopita kutoka kwa muhuri wa muda yaani, sekunde 300 zilizopita.Mfano wa 1:Ingizo HitCounter , gonga, gonga, gonga, getHits, gonga, getHits, getHits, 1, 2, 3, 4, 300, 300, 301Patonull, null, null, null, 3, null, 4, 3UfafanuziHitCounter hitCounter HitCounter mpya ;hitCounter.hit1; gonga kwa muhuri wa muda 1.hitCounter.hit2; gonga kwa muhuri wa muda 2.hitCounter.hit3; gonga kwa muhuri wa nyakati 3.hitCounter.getHits4; pata vibao kwa muhuri wa muda wa 4, rudisha 3.hitCounter.hit300; gonga kwa muhuri wa nyakati 300.hitCounter.getHits300; pata vibao kwa muhuri wa nyakati 300, rudisha 4.hitCounter.getHits301; pata vibao kwa muhuri wa nyakati 301, rudisha 3.Vikwazo: 1 muhuri wa muda 2 109 Simu zote zinapigwa kwa mfumo kwa mpangilio wa matukio yaani, muhuri wa muda unaongezeka mara moja. Angalau simu 300 zitapigwa kupiga na getHits.Fuata: Je, ikiwa idadi ya vibonzo kwa sekunde inaweza kuwa kubwa? Je, muundo wako una kiwango gani?  <response>: chatukutoka kwa makusanyo kuagiza dequedarasa HitCounter: def __init__binafsi: self.queue deque def hitbinafsi, muhuri wa muda: int - Hakuna: foleni.jiambatanishemuhuri wa saa def getHitsself, timestamp: int - int: huku self.queue na self.queue0 timestamp - 300: self.queue.popleft rudisha lenself.queuemaelezoUfunguo wa kutatua tatizo hili ni kudumisha foleni yenye mihuri ya muda. Kwa kuwa mihuri ya muda inaongezeka mara moja, tunaweza kuiga kidirisha kinachosonga kwa kuondoa vibao ambavyo haviko tena ndani ya sekunde 300 zilizopita kwa muhuri wa muda uliotolewa.1. Tekeleza darasa la HitCounter kwa muundo wa data unaofanana na foleni k.m., deque, foleni, orodha, orodha iliyounganishwa2. Kwa pigamuhuri wa muda, ongeza muhuri wa muda kwenye mkia wa foleni.3. Kwa getHitstimestamp, rudia kupitia mihuri ya muda kutoka kwenye kichwa cha foleni na uondoe muhuri wowote wa muda ambao hauko ndani ya sekunde 300 zilizopita yaani, current_timestamp - 300. Kisha rudisha idadi ya mihuri ya muda iliyobaki kwenye foleni yaani, ukubwa wa foleni.Hakuna tofauti katika suala la algorithm kati ya lugha nne. Wote wanafuata mantiki sawa ambayo inategemea maelezo hapo juu. Baadhi ya tofauti ndogo ni pamoja na syntax na jinsi shughuli fulani hufanywa, lakini mantiki ya msingi inabaki sawa. 