<prompt> Tunaweza kuhamisha mfuatano kwa kubadilisha kila herufi hadi herufi zinazofuatana. Kwa mfano, abc inaweza kubadilishwa kuwa bcd .Tunaweza kuendelea kuhamisha mfuatano ili kuunda mfuatano. Kwa mfano, tunaweza kuendelea kuhamisha abc ili kuunda mfuatano: abc - bcd - ... - xyz .Kwa kuzingatia safu ya mifuatano mifuatano, panga safu mifuatanoi zote ambazo ni za mfuatano sawa wa kuhama. Unaweza kurudisha jibu kwa mpangilio wowote .Mfano wa 1:Ingizo: mifuatano abc,bcd,acef,xyz,az,ba,a,zPato: acef,a,z,abc,bcd,xyz,az,az, baMfano wa 2:Ingizo: mifuatano aPato: aVikwazo: 1 strings.length 200 1 stringsi.urefu 50 stringsi ina herufi ndogo za Kiingereza.  <response>: chatukutoka kwa makusanyo leta defaultdictdef groupStringskamba: vikundi defaultdictorodha kwa s katika nyuzi: key tupleordc - ords0 26 kwa c in s vikundiufunguo.ongeza orodha ya kurudi groups.valuesmaelezoWazo ni kuunda ufunguo wa kipekee kwa kila kikundi cha kamba, ambayo inategemea umbali wa jamaa kati ya wahusika kwenye kamba. Tunarudia kupitia mifuatano uliyopewa na kuunda ufunguo wa kila mfuatano kwa kuchukua tofauti kati ya msimbo wa ASCII wa kila herufi na ule wa herufi ya kwanza, modulo 26. Tunaongeza delta hizi kama vipengele vilivyotenganishwa kwa koma na kuzitumia kama ufunguo katika ramani. Ambapo ramani ni hashmap katika C na Java, defaultdict katika Python, na Ramani katika JavaScript. Kwa kila kamba, tunaiongezea kwenye orodha ya masharti yanayolingana na kikundi chake ufunguo kwenye ramani.Baada ya kurudia kupitia kamba zote, tunarudisha orodha ya vikundi kutoka kwenye ramani.Kumbuka kuwa utendakazi wa modulo na 26 hutoka kwa idadi ya herufi ndogo za Kiingereza ambazo ni 26. Kwa hivyo, mabadiliko yoyote makubwa zaidi ya 25 yatazunguka kwa herufi za mwanzo. 