<prompt> Mfuatano wa ubadilishaji kutoka neno beginWord hadi neno endWord kwa kutumia kamusi wordList ni mfuatano wa maneno beginWord - s1 - s2 - ... - sk hivi: Kila jozi ya maneno inayokaribiana hutofautiana kwa herufi moja. Kila si kwa 1 i k iko katika Orodha ya maneno. Kumbuka kuwa beginWord haihitaji kuwa katika wordList. sk endWordIkipewa maneno mawili, beginWord na endWord, na kamusi wordList, hurejesha _mifuatano yote mifupi zaidi ya ubadilishaji kutoka_ beginWord _to_ endWord_, au orodha tupu ikiwa hakuna mfuatano kama huo. Kila mlolongo unapaswa kurejeshwa kama orodha ya maneno_ beginWord, s1, s2, ..., sk.Mfano wa 1:Ingizo: beginWord piga , endWord cog , wordList moto , dot , mbwa , lot , logi , cog Pato: piga , moto, dot , mbwa , cog , piga , moto, wingi , logi , cogMaelezo: Kuna mfuatano 2 mfupi zaidi wa mabadiliko: piga - moto - dot - mbwa - cog piga - moto - mengi - logi - cogMfano wa 2:Ingizo: beginWord piga, endWord cog , wordList moto, dot , mbwa , lot , logi Pato: Maelezo: Neno la mwisho cog haliko katika Orodha ya maneno, kwa hivyo hakuna mfuatano halali wa ugeuzaji.Vikwazo: 1 beginWord.length 5 endWord.length beginWord.length 1 wordList.length 500 Orodha ya manenoi.length beginWord.length beginWord, endWord, na wordListi zinajumuisha herufi ndogo za Kiingereza. beginWord ! endWord Maneno yote katika Orodha ya maneno ni kipekee.Jumla ya mfuatano mfupi zaidi wa mabadiliko hauzidi 105.  <response>: chatukutoka kwa makusanyo leta defaultdict, dequedef findLaddersbeginWord, endWord, wordList: wordList setwordList ikiwa EndWord haipo katika WordList: kurudi karibu defaultdictorodha umbali defaultdictint foleni dequebeginWord umbalibeginWord 0 def majiranineno: kwa mimi katika anuwailenneno: kwa j katika safuorda, ordz 1: toa neno:i chrj nenoi 1: wakati foleni: sasa foleni.popleft ikiwa sasa endWord: mapumziko kwa jirani kwa majirani sasa: ikiwa jirani haiko katika WordList: endelea ikiwa jirani hayuko mbali: umbalijirani umbalisasa 1 foleni.ongeza jirani ikiwa umbalijirani umbalicurrent 1: karibusasa.ongezajirani matokeo njia beginWord def backtrackneno: ikiwa neno endWord: tokeo.ongezanjia: kwingine: kwa neno_lafuatayo karibu na neno: path.ongezaneno_linalofuata nyuma neno_linalofuata path.pop backtrack beginWord matokeo ya kurudimaelezo1. Unda seti ya kamusi, ramani iliyo karibu, ramani ya umbali, na foleni ya kuhifadhi maneno.2. Anzisha foleni na StartWord na uweke umbali wake hadi 0.3. Bainisha kitendakazi cha majirani ambacho kinarudisha maneno yote yanayowezekana kwa kubadilisha herufi moja ya neno ulilopewa.4. Endesha BFS kutoka startWord, ukisasisha umbali na ramani zilizo karibu.5. BFS inasimama inapofika endWord au inapomaliza kutembelea maneno yote yanayoweza kufikiwa.6. Bainisha utendakazi wa nyuma ili kutafuta kupitia ramani ya karibu iliyogunduliwa ili kuunda njia za mabadiliko.7. Piga simu kitendaji cha nyuma na beginWord, na urudishe orodha ya matokeo, ambayo ina mabadiliko mafupi zaidi. 