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

पायथन में शब्दकोश में सबसे लंबा शब्द

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

इसलिए, यदि इनपुट ["h",,"he",,"hel",,"hell", "hello"] जैसा है, तो आउटपुट "हैलो" होगा

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

  • कोशिश करें:=एक नया नक्शा
  • एक फंक्शन इंसर्ट () को परिभाषित करें। यह शब्द लेगा
  • अब :=ट्राई
  • शब्द में प्रत्येक सी के लिए, करें
    • अगर c अभी नहीं है −
      • अब[c] ={'#', False}, फिर
    • अब :=अब[c]
    • अब['#'] :=सच
  • फ़ंक्शन को परिभाषित करें search() । यह शब्द लेगा
  • अब :=ट्राई
  • शब्द में प्रत्येक सी के लिए, करें
    • यदि '#' अभी में है और अभी नहीं ['#'] सत्य है, तो
      • झूठी वापसी
    • अब :=अब[c]
    • अभी वापस आएं['#']
  • शब्दों में प्रत्येक शब्द के लिए, करें
    • कॉल इंसर्ट (शब्द)
  • उत्तर:=खाली स्ट्रिंग
  • शब्दों में प्रत्येक शब्द के लिए, करें
    • यदि खोज (शब्द) और (शब्द का आकार> उत्तर का आकार या (शब्द का आकार उत्तर और शब्द के आकार के समान है)), तो
      • उत्तर:=शब्द
  • वापसी उत्तर

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

उदाहरण

class Solution:
   def longestWord(self, words):
      self.trie = {}
   def insert(word):
      now = self.trie
      for c in word:
         if c not in now: now[c] = {'#': False}
            now = now[c]
         now['#'] = True
   def search(word):
      now = self.trie
      for c in word:
         if '#' in now and not now['#']: return False
            now = now[c]
         return now['#']
         for word in words:
            insert(word)
         ans = ""
         for word in words:
            if (search(word) and (len(word) > len(ans) or (len(word) == len(ans) and word    < ans))):
         ans = word
      return ans
ob = Solution()
print(ob.longestWord(["h","he","hel","hell", "hello"]))

इनपुट

["h","he","hel","hell", "hello"]

आउटपुट

hello

  1. पायथन में एक शब्द सरणी की सबसे लंबी उपसर्ग अनुक्रम खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास w नामक शब्दों की एक सूची है, जिसमें लोअरकेस स्ट्रिंग्स हैं। हमें w के सबसे लंबे अनुक्रम की लंबाई ज्ञात करनी है जहां प्रत्येक पिछला शब्द अगले शब्द का उपसर्ग है और अगले शब्द में केवल एक नया वर्ण जोड़ा गया है। इसलिए, यदि इनपुट w =[pqr, pq, m, mn, pqrs] जैसा है, तो आउटपुट 3 होगा

  1. पायथन - एक स्ट्रिंग में शब्द आवृत्ति

    जब स्ट्रिंग शॉर्टहैंड का उपयोग करके शब्दों की आवृत्ति को खोजने की आवश्यकता होती है, तो डिक्शनरी कॉम्प्रिहेंशन का उपयोग किया जा सकता है। उदाहरण नीचे उसी का एक प्रदर्शन है my_str = 'Hi there Will, how are you Will, Will you say Hi to me' print("The string is : " ) print(my_str) my_r

  1. पायथन टिंकर का उपयोग करते हुए वर्ड डिक्शनरी

    इस लेख में, हम PyDictionary और TkinterModule का उपयोग करके GUI- आधारित शब्दकोश बनाएंगे। PyDictionary एक पायथन मॉड्यूल है जो शब्दों के अर्थ अनुवाद, विलोम और समानार्थक शब्द प्राप्त करने में मदद करता है। यह वर्डनेट . का उपयोग करता है अर्थ प्राप्त करने के लिए, अनुवाद के लिए Google, और समानार्थी और विलो