Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में एक शब्द को दूसरे में बदलने के लिए आवश्यक चरणों की संख्या खोजने का कार्यक्रम

मान लीजिए कि हमारे पास डिक्शनरी नामक शब्दों की एक सूची है और हमारे पास दो और स्ट्रिंग्स प्रारंभ और अंत हैं। हम एक समय में एक वर्ण को बदलकर शुरू से अंत तक पहुंचना चाहते हैं और प्रत्येक परिणामी शब्द भी शब्दकोश में होना चाहिए। शब्द केस-संवेदी होते हैं। इसलिए हमें अंत तक पहुँचने के लिए न्यूनतम कदमों की संख्या ज्ञात करनी होगी। यदि संभव न हो तो -1 लौटें।

इसलिए, यदि इनपुट शब्दकोश =["मई", "रे", "चूहा"] प्रारंभ ="चूहा" अंत ="मई" जैसा है, तो आउटपुट 3 होगा, क्योंकि हम इस पथ का चयन कर सकते हैं:["चूहा ", "रे", "मे"]।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

शब्दकोश:=सभी अद्वितीय तत्वों के साथ एक नया सेट inq =एक जोड़ी के साथ एक डबल एंडेड कतार (प्रारंभ, 1) जबकि q खाली नहीं है, करें (शब्द, दूरी):=q का बायां तत्व, और हटा दें बायां तत्व यदि शब्द अंत के समान है, तो i के लिए दूरी 0 से शब्द -1 के आकार तक, "abcdefghijklmnopqrstuvwxyz" में प्रत्येक वर्ण c के लिए करें, अगला_वर्ड करें:=शब्द [सूचकांक 0 से i - 1] सी को संयोजित करें संक्षिप्त शब्द [सूचकांक (i + 1) से अंत तक] यदि अगला_शब्द शब्दकोश में है, तो qreturn -1 के अंत में शब्दकोश डालने से अगला_शब्द हटाएं (अगला_शब्द, दूरी + 1) 

उदाहरण (पायथन)

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

संग्रह से आयात dequeclass समाधान:def समाधान (स्व, शब्दकोश, प्रारंभ, अंत):शब्दकोश =सेट (शब्दकोश) q =deque ([(प्रारंभ, 1)]) जबकि q:शब्द, दूरी =q.popleft( ) अगर शब्द ==अंत:सीमा में मैं के लिए वापसी दूरी (लेन (शब्द)):"abcdefghijklmnopqrstuvwxyz" में सी के लिए:अगला_शब्द =शब्द [:i] + सी + शब्द [i + 1:] अगर शब्दकोश में अगला_शब्द:शब्दकोश .remove(next_word) q.append((next_word, दूरी + 1)) वापसी -1ob =समाधान () शब्दकोश =["मई", "रे", "चूहा"] प्रारंभ ="चूहा" अंत ="हो सकता है" प्रिंट (ob.solve(शब्दकोश, प्रारंभ, अंत))

इनपुट

["may", "ray", "rat"], "rat", "may"

आउटपुट

3

  1. पायथन में 8-पहेली को हल करने के लिए चरणों की संख्या खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक 3x3 बोर्ड है जहां सभी संख्याएं 0 से 8 की सीमा में हैं और कोई दोहराई जाने वाली संख्या नहीं है। अब, हम 0 को उसके 4 पड़ोसियों में से एक के साथ स्वैप कर सकते हैं, और हम सभी व्यवस्थित अनुक्रम प्राप्त करने के लिए इसे हल करने का प्रयास कर रहे हैं, हमें लक्ष्य तक पहुंचने के लिए आवश

  1. पायथन में एक स्ट्रिंग सबस्ट्रिंग बनाने के लिए आवश्यक न्यूनतम संख्या में संचालन खोजने के लिए कार्यक्रम

    मान लीजिए कि हमारे पास दो तार s और t हैं, हमें t को s का विकल्प बनाने के लिए s के लिए आवश्यक न्यूनतम संक्रियाएँ ज्ञात करनी होंगी। अब, प्रत्येक ऑपरेशन में, हम s में कोई भी स्थिति चुन सकते हैं और उस स्थिति के वर्ण को किसी अन्य वर्ण में बदल सकते हैं। इसलिए, यदि इनपुट s =abbpqr, t =bbxy जैसा है, तो आउट

  1. एक सूची में सबसे बड़ी संख्या खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन दी गई सूची इनपुट, हमें दी गई सूची में सबसे बड़ी संख्या खोजने की जरूरत है। यहां हम दो दृष्टिकोणों पर चर्चा करेंगे सॉर्टिंग तकनीकों का उपयोग करना अंतर्निहित अधिकतम() फ़ंक्शन का उपयोग करना दृष्टिक