<prompt> Tengeneza muundo wa data unaofuata vikwazo vya akiba Inayotumika Hivi Karibuni zaidi LRU darasa la LRUCache: LRUCacheint capacity Anzisha akiba ya LRU na ukubwa wa chanya uwezo. int getint key Rejesha thamani ya ufunguo ikiwa ufunguo upo, vinginevyo rudisha -1. void putint key, int value Sasisha thamani ya ufunguo ikiwa ufunguo upo. Vinginevyo, ongeza jozi ya muhimu-thamani kwenye akiba. Ikiwa idadi ya vitufe itazidi uwezo kutoka kwa utendakazi huu, ondoa ufunguo uliotumika hivi karibuni zaidi.Chaguo za kukokotoa pata na weka lazima kila moja ziendeshe katika uchangamano wa wastani wa O1.Mfano wa 1:Ingizo LRUCache , weka, weka, pata, weka, pata, weka, pata, pata, pata2, 1, 1, 2, 2, 1, 3, 3, 2, 4, 4 , 1, 3, 4Patonull, null, null, 1, null, -1, null, -1, 3, 4UfafanuziLRUCache lRUCache LRUCache mpya2;lRUCache.put1, 1; akiba ni 11lRUCache.put2, 2; akiba ni 11, 22lRUCache.get1; kurudi 1lRUCache.put3, 3; Ufunguo wa LRU ulikuwa 2, ondoa ufunguo 2, akiba ni 11, 33lRUCache.get2; inarudi -1 haijapatikanalRUCache.put4, 4; Ufunguo wa LRU ulikuwa 1, ondoa ufunguo 1, akiba ni 44, 33lRUCache.get1; kurudi -1 haijapatikanalRUCache.get3; kurudi 3lRUCache.get4; kurudi 4Vikwazo: 1 uwezo 3000 0 ufunguo 104 0 thamani 105 Angalau zaidi simu 2 105 zitapigwa ili kupata na kuweka.  <response>: chatukutoka kwa makusanyo ingiza OrderedDictdarasa LRUCache: def __init__binafsi, uwezo: int: self.cache OrderedDict uwezo binafsi uwezo def getself, key: int - int: ikiwa ufunguo hauko kwenye self.cache: kurudi -1 thamani self.cache.popkey self.cachekey thamani thamani ya kurudi def putself, key: int, value: int - Hakuna: ikiwa ni muhimu katika self.cache: self.cache.popufunguo elif lenself.cache self.capacity: self.cache.popitemmwishoUongo self.cachekey thamanimaelezoMuundo wa data ya Akiba ya LRU una orodha iliyounganishwa maradufu na ramani ya hashi.- Operesheni ya kupata hukagua ikiwa ufunguo upo kwenye kashe kwa kutumia ukaguzi wa wakati usiobadilika. Ikiwa ipo, sogeza nodi inayolingana kwenye kichwambele ya orodha iliyounganishwa na urudishe thamani.- Operesheni ya kuweka hufuata hatua sawa na kazi ya kupata, lakini husasisha zaidi thamani ya ufunguo. Ikiwa ufunguo haupo kwenye kashe na saizi ya kache iko kwenye uwezo, nodi ya mkiamwisho huondolewa kwenye kashe, na kipengee kipya kinaingizwa kwenye kichwambele ya orodha.Katika utekelezaji wote hapo juu, msimbo hufuata kanuni hii ya jumla ikichukua fursa ya vitendaji vya ndani vya lugha husika ili kuhakikisha ugumu wa wastani wa O1 kwa shughuli za kupata na kuweka. 