<prompt> Tengeneza saraka ya simu ambayo mwanzoni ina nafasi tupu za maxNumbers ambazo zinaweza kuhifadhi nambari. Saraka inapaswa kuhifadhi nambari, angalia ikiwa slot fulani haina kitu au la, na tupu nafasi fulani.Tekeleza darasa la FoneDirectory: PhoneDirectoryint maxNumbers Huanzisha saraka ya simu yenye idadi ya nafasi zinazopatikana maxNumbers. int get Hutoa nambari ambayo haijakabidhiwa mtu yeyote. Hurejesha -1 ikiwa hakuna nambari inayopatikana. bool checkint number Hurejesha true ikiwa nafasi nambari inapatikana na false vinginevyo. batili kutolewaint number Hurejesha tena au hutoa nafasi nambari.Mfano wa 1:Ingizo Haki ya Simu , pata , pata , angalia , pata , angalia , toa , angalia 3, , , 2, , 2, 2, 2Patonull, 0, 1, kweli, 2, uongo, null, kweliUfafanuziPhoneDirectory phoneDirectory PhoneDirectory mpya3;phoneDirectory.get; Inaweza kurudisha nambari yoyote ya simu inayopatikana. Hapa tunadhani inarudi 0.phoneDirectory.get; Chukulia inarudi 1.phoneDirectory.check2; Nambari ya 2 inapatikana, kwa hivyo rudi kweli.phoneDirectory.get; Inarudi 2, nambari pekee iliyobaki.phoneDirectory.check2; Nambari ya 2 haipatikani tena, kwa hivyo rudisha uwongo.phoneDirectory.kutolewa2; Toa nambari 2 kwenye bwawa.phoneDirectory.check2; Nambari 2 inapatikana tena, rudi kweli.Vikwazo: 1 maxNumbers 104 0 nambari maxNumbers Angalau zaidi simu 2 104 zitapigiwa kupata, kuangalia na kutoa.  <response>: chatukutoka kwa makusanyo kuagiza dequeDarasa SimuDirectory: def __init__binafsi, maxNumbers: int: binafsi.inapatikana Kweli maxNumbers self.released deque def getself - int: ikiwa imejitoa: nambari self.released.popleft binafsi.inapatikananamba Si kweli nambari ya kurudi kwa mimi katika anuwaileninapatikana: ikiwa binafsi inapatikanai: binafsi.inapatikanai Si kweli kurudi i kurudi -1 def checkbinafsi, nambari: int - bool: return self.availablenumber def kutolewa binafsi, nambari: int - Hakuna: ikiwa haipatikani binafsinamba: binafsi.inapatikananamba Kweli kujitoa.ambatanishanambarimaelezoKanuni hutumia safu ya booleans inayoitwa inapatikana yenye ukubwa wa maxNumbers ili kuwakilisha upatikanaji wa kila nafasi njia halisi zinapatikana, na njia zisizo za kweli zinazochukuliwa. Zaidi ya hayo, hutumia foleni inayoitwa iliyotolewa kuhifadhi nambari ambazo zimetolewa hivi majuzi.- Saraka ya simu inapoanzishwa, nafasi zote zinazopatikana huwekwa kuwa kweli, na foleni iliyotolewa haina chochote.- Wakati get inapoitwa, hurejesha nambari ya kwanza inayopatikana. Ikiwa kuna nambari iliyotolewa hivi majuzi kwenye foleni iliyotolewa, inampa mpigaji nambari hii na kuiondoa kwenye foleni. Ikiwa hakuna nambari zilizotolewa hivi majuzi, hupata nambari ya kwanza inayopatikana katika safu inayopatikana, inaiweka kuwa false, na kuirudisha. Ikiwa hakuna nambari inayopatikana, itarejesha -1.- Cheki inapoitwa, hurejesha thamani ya availablenambari kweli au si kweli.- Wakati release inapoitwa, huweka thamani ya availablenumber hadi true na kuingiza nambari hii kwenye foleni iliyotolewa ikiwa nafasi haipatikani.Suluhisho hili linahakikisha kuwa kila operesheni pata, angalia, na kutolewa ina ugumu wa OmaxNumbers katika hali mbaya zaidi, ikikidhi hitaji lililopewa vizuizi. 