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

पायथन में गलत वर्तनी वाले शब्द को ठीक करने के लिए बदले जाने वाले वर्णों की कुल संख्या का पता लगाने का कार्यक्रम

मान लीजिए हमें शहरों की सूची और एक दूसरे को जोड़ने वाली सड़कों की सूची दी गई है। सूची 'शहरों' में उन शहरों के नाम शामिल हैं जो एक टूर बस क्रम में जाते हैं। सूची 'सड़कों' में सड़कों को एक (स्रोत, गंतव्य) क्रम में सूचीबद्ध किया गया है जिसका अर्थ है कि स्रोत से गंतव्य तक एकतरफा सड़क है। अब, एक समस्या यह है कि 'शहरों' की सूची में कुछ शहरों के नामों की वर्तनी गलत हो सकती है। हमें वर्णों की न्यूनतम संख्या को बदलकर ऐसे गलत वर्तनी वाले शहर के नामों को ठीक करना होगा। हम आउटपुट के रूप में बदले गए वर्णों की संख्या लौटाते हैं।

इसलिए, यदि इनपुट शहरों की तरह है =["HWH", "DLI", "BGL"], सड़कें =[["HWH", "DLI"], ["DLI", "BCT"], ["BCT" , "HWH"]], तो आउटपुट 2 होगा।

शहरों में गलत वर्तनी वाले शहर का नाम 'बीजीएल' है। सही नाम 'बीसीटी' होगा। तो, शहरों में भी नाम सही करने के लिए हमें 2 अक्षर बदलने होंगे।

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

  • एक फ़ंक्शन को परिभाषित करें diff() । इसमें a, b
      . लगेगा
    • ए और बी के बीच वर्णों में कुल अंतर लौटाएं
  • आकार :=शहरों का आकार
  • गिरफ्तारी:=एक नया नक्शा
  • जंक्शन :=सड़कों के प्रत्येक स्रोत शहर से एक नया सेट
  • जंक्शन में प्रत्येक j के लिए, करें
    • arr[j] :=diff(cities[0], j)
  • 1 से लेकर आकार तक के i के लिए, करें
    • अगला:=एक नया नक्शा
    • सड़कों में प्रत्येक r1, r2 के लिए, करें
      • अगर r1 वर्तमान में गिरफ्तारी में है, तो
        • लागत :=arr[r1] + diff(cities[i], r2)
        • यदि r2 nxt या लागत
        • next[r2] :=लागत
  • गिरफ्तारी:=अगला
  • गिरफ्तारी में कम से कम सभी मान लौटाएं
  • उदाहरण

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

    def diff(a, b):
       return sum(x != y for x, y in zip(a, b))
    
    def solve(cities, roads):
       size = len(cities)
       arr = dict()
       junctions = set(r[0] for r in roads)
       for j in junctions:
          arr[j] = diff(cities[0], j)
       for i in range(1, size):
          nxt = dict()
          for r1, r2 in roads:
             if r1 in arr:
                cost = arr[r1] + diff(cities[i], r2)
                if r2 not in nxt or cost < nxt[r2]:
                   nxt[r2] = cost
          arr = nxt
       return min(arr.values())
    
    print(solve(["HWH", "DLI", "BGL"], [["HWH", "DLI"],["DLI", "BCT"],
    ["BCT", "HWH"]]))

    इनपुट

    ["HWH", "DLI", "BGL"], [["HWH", "DLI"],["DLI", "BCT"], ["BCT",
    "HWH"]]

    आउटपुट

    2

    1. यह पता लगाने के लिए कार्यक्रम कि क्या पायथन में सभी के द्वारा ग्राफ़ को ट्रैवर्स किया जा सकता है

      मान लीजिए, हमें एक ग्राफ दिया गया है जिसमें n शीर्षों की संख्या 0 से n - 1 है। ग्राफ अप्रत्यक्ष है और प्रत्येक किनारे का वजन है। ग्राफ में तीन प्रकार के भार हो सकते हैं और प्रत्येक भार एक विशेष कार्य को दर्शाता है। दो लोग हैं जो ग्राफ को पार कर सकते हैं, अर्थात् जैक और केसी। जैक ग्राफ को पार कर सकता

    1. पायथन में गोदाम में रखे जाने वाले बक्सों की संख्या का पता लगाने का कार्यक्रम

      मान लीजिए, हमारे पास पूर्णांक वाले दो सरणियाँ हैं। एक सूची में कुछ इकाई चौड़ाई वाले बक्सों की ऊँचाई होती है और दूसरी सूची में गोदाम में कमरों की ऊँचाई होती है। कमरों की संख्या 0...n है, और कमरों की ऊंचाई सरणी गोदाम में उनके संबंधित सूचकांक में प्रदान की जाती है। हमें पता लगाना है कि कितने बक्सों को

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

      इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें सभी सूची दी गई है, हमें सूची में उपलब्ध सबसे छोटी संख्या प्रदर्शित करने की आवश्यकता है यहां हम या तो सूची को क्रमबद्ध कर सकते हैं और सबसे छोटा तत्व प्राप्त कर सकते हैं या सबसे छोटा तत्व प्राप्त करने के लिए अंतर्न