<prompt> Tengeneza muundo wa data ambao utaanzishwa kwa safu ya safu, na kisha inapaswa kujibu maswali ya umbali mfupi zaidi kati ya safu mbili tofauti kutoka kwa safu.Tekeleza darasa la WordDistance: WordDistanceString wordsDict huanzisha kitu kwa safu ya mifuatano wordsDict. int shortestNeno la mfuatano1, Neno la mfuatano2 hurejesha umbali mfupi zaidi kati ya neno1 na neno2 katika safu wordsDict.Mfano wa 1:Ingizo WordDistance , fupi zaidi, fupi zaidi mazoezi , hufanya , kamilifu , usimbaji , hufanya , usimbaji , fanya mazoezi , hufanya , usimbaji Patonull, 3, 1UfafanuziWordDistance wordDistance new WordDistance mazoezi , hufanya , kamilifu , coding , hufanya ;wordDistance.shortest coding, practice; kurudi 3wordDistance.shortest hufanya, coding; kurudi 1Vikwazo: 1 maneno Dict.length 3 104 1 manenoDicti.urefu 10 wordsDicti ina herufi ndogo za Kiingereza. neno1 na neno2 ziko katika wordsDict. neno1 ! neno2 Simu zisizozidi 5000 zitapigwa kwa fupi zaidi.  <response>: chatudarasa la WordDistance: def __init__binafsi, wordsDict: self.word_indexes kwa mimi, neno katika enumeratewordsDict: ikiwa neno halimo katika nafsi.word_indexes: self.word_ indexesneno faharasa_ya_nenoneno.ongezai def shortestubinafsi, neno1, neno2: indexes1 self.word_indexesneno1 indexes2 self.word_indexesneno2 i, j, min_dist 0, 0, kueleainf wakati mimi lenindexes1 na j lenindexes2: min_dist minmin_dist, absindex1i - indexes2j ikiwa indexes1i indexes2j: mimi 1 kwingine: j 1 rudisha min_dist maelezoKanuni ya kwanza huanzisha ramani ya hashmap wakati wa uanzishaji, kwa kila neno la kipekee, katika safu ya manenoDict, kama funguo, na faharasa zao zinazolingana katika manenoDict kama thamani.Kitendaji kifupi kinakubali neno1 na neno2 kama hoja za kuingiza. Chaguo la kukokotoa lina jukumu la kukokotoa na kurejesha umbali wa chini kabisa kati ya maneno mawili ya ingizo katika safu iliyotolewa ya manenoDict. Ili kufikia hilo, hufanya yafuatayo:1. Hifadhi safu za faharasa za neno1 na neno2 katika vigeuzo index1 na index2.2. Anzisha vigeu i na j hadi 0, ili kurudia kupitia safu za faharasa na kuanzisha min_dist hadi thamani ya juu iwezekanavyo kwa lugha ya programu.3. Tekeleza kitanzi cha muda kwa sharti kwamba i na j ni ndogo kuliko urefu wa safu index1 na indexes2, mtawalia.4. Kokotoa absindex1i - indexes2j na uilinganishe na min_dist ya sasa. Ikiwa ni ndogo, weka min_dist kwa umbali mpya wa chini zaidi.5. Ikiwa faharasa1i ni ndogo kuliko index2j, basi ongeza i, vinginevyo ongeza j.6. Kitanzi kinapoisha, rudisha min_dist ambayo hushikilia umbali mfupi zaidi kati ya maneno mawili ya ingizo katika safu. 