<prompt> Kwa kuzingatia mfuatano s, tafuta urefu wa muda mrefu zaidi mfuatano mdogo bila kurudia vibambo.Mfano wa 1:Ingizo: s abcabcbbPato: 3Maelezo: Jibu ni abc, yenye urefu wa 3.Mfano wa 2:Ingizo: s bbbPato: 1Maelezo: Jibu ni b, lenye urefu wa 1.Mfano wa 3:Ingizo: s pwwkewPato: 3Maelezo: Jibu ni wke, lenye urefu wa 3.Tambua kuwa jibu lazima liwe kamba ndogo, pwke ni safu inayofuata na sio safu ndogo.Vikwazo: 0 s.urefu 5 104 s inajumuisha herufi za Kiingereza, tarakimu, alama na nafasi.  <response>: chatudef urefu_of_longest_substrings: str - int: kushoto 0 kulia 0 max_length 0 herufi set wakati kulia lens: ikiwa si kulia kwa herufi: wahusika.ongezaskulia max_length maxmax_length, kulia - kushoto 1 kulia 1 kwingine: characters.ondoaskushoto kushoto 1 rudisha max_lengthmaelezoAlgorithm hutumia kidirisha cha kuteleza kilicho na viashiria viwili, kushoto na kulia, ili kurudia kupitia kamba. Pia hutumia seti ili kuhifadhi herufi za kipekee kwenye dirisha la sasa.1. Anzisha viashiria vya kushoto na kulia hadi mwanzo wa mfuatano, na Urefu wa juu hadi 0.2. Angalia ikiwa herufi kwenye faharasa ya kulia iko kwenye seti. - Ikiwa haipo katika seti, ongeza herufi kwenye seti, sasisha maxLength, na usogeze kielekezi sahihi mbele. - Ikiwa iko kwenye seti, ondoa herufi kwenye faharasa ya kushoto kutoka kwa seti, na usogeze pointer ya kushoto mbele.3. Rudia hatua ya 2 hadi pointer ya kulia ifikie mwisho wa kamba.4. Rudisha maxLength.Algorithm inakwenda kwa wakati wa On, ambapo n ni urefu wa kamba ya kuingiza. 