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

Trie . का उपयोग करके स्वतः पूर्ण सुविधा

हमारे पास एक ट्री है, और जब कोई उपयोगकर्ता एक चरित्र में प्रवेश करता है, तो हमें मिलान स्ट्रिंग को ट्री दिखाना होगा। इस सुविधा को हम स्वतः पूर्णता कहते हैं। उदाहरण के लिए, यदि किसी ट्री में "xyzzzz,""xyz," "xxxyyxzz" है और जब उपयोगकर्ता xy . दर्ज करता है , तो हमें उन्हें दिखाना होगा xyzzzz, xyz , आदि..,

परिणाम प्राप्त करने के लिए कदम।

  • मानक ट्री एल्गोरिथम का उपयोग करके स्ट्रिंग की खोज करें।

  • यदि स्ट्रिंग मौजूद नहीं है, तो -1 लौटें।

  • यदि स्ट्रिंग मौजूद है और ट्री में किसी शब्द का अंत है, तो स्ट्रिंग को प्रिंट करें।

  • यदि मेल खाने वाली स्ट्रिंग में कोई नोड नहीं है, तो वापस लौटें।

  • अन्यथा सभी नोड्स प्रिंट करें।

आइए कोडिंग शुरू करें।

# class for Trie Node
   class TrieNode():
   def __init__(self):
# initialising trie node
   self.trie_node = {}
   self.last_node = False
   class Trie():
   def __init__(self):
# initialising the trie
   self.root = TrieNode()
# list to store the words
   self.words = []
   def create_trie(self, keys):
# creating the Trie using data
   for key in keys:
# inserting one key to the trie
   self.insert_node(key)
   def insert_node(self, key):
   node = self.root
for obj in list(key):
   if not node.trie_node.get(obj):
   # creating a TrieNode
      node.trie_node[obj] = TrieNode()
      node = node.trie_node[obj]
   # making leaf node
   node.last_node = True
   def search(self, key):
# searching for the key
   node = self.root
   is_found = True
for obj in list(key):
   if not node.trie_node.get(obj):
      is_found = False
   break
      node = node.trie_node[obj]
return node and node.last_node and is_found
   def matches(self, node, word):
if node.last_node:
   self.words.append(word)
for obj, n in node.trie_node.items():
   self.matches(n, word + obj)
   def show_auto_completion(self, key):
   node = self.root
   is_found = False
   temp = ''
for obj in list(key):
   # checking the word
if not node.trie_node.get(obj):
   is_found = True
break
   temp += obj
   node = node.trie_node[obj]
if is_found:
   return 0
elif node.last_node and not node.trie_node:
   return -1
   self.matches(node, temp)
for string in self.words:
   print(string)
return 1
   # data for the Trie
strings = ["xyz", "xyzzzz", "xyabad", "xyyy", "abc", "abbccc", "xyx", "xyxer",
a"]
   # word for auto completion
   string = "xy"
   status = ["Not found", "Found"]
# instantiating Trie class
   trie = Trie()
# creating Trie using the strings
   trie.create_trie(strings)
# getting the auto completion words for the string from strings
   result = trie.show_auto_completion(string)
if result == -1 or result == 0:
   print("No matches")

यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।

xyz
xyzzzz
xyabad
xyyy
xyx
xyxer

  1. एक गुप्त वीएलसी फ़ीचर:इसे वीडियो संपादक के रूप में उपयोग करना

    सबसे लोकप्रिय मीडिया प्लेयर में से एक के रूप में, वीएलसी मोबाइल प्लेटफॉर्म के साथ-साथ ऑडियो और वीडियो प्रारूपों सहित सभी ऑपरेटिंग सिस्टम का समर्थन करता है। लेकिन क्या आप जानते हैं कि इसमें एक छिपा हुआ फीचर भी है जो इसे वीडियो एडिटर के रूप में इस्तेमाल करने की अनुमति देता है। चाहे आपके पास अपरिष्कृत

  1. ऑटो स्टॉप रिकॉर्डिंग सुविधा का उपयोग करके अपनी रिकॉर्डिंग कैसे रोकें?

    स्क्रीन रिकॉर्डिंग व्यक्तिगत और पेशेवर दोनों तरह से बहुत से लोगों की मदद कर रही है, चाहे उन्हें YouTube वीडियो के लिए अपनी स्क्रीन रिकॉर्ड करने की आवश्यकता हो या सोशल मीडिया पर साझा करने के लिए किसी महत्वपूर्ण मीटिंग या गेम को कैप्चर करने की आवश्यकता हो। नतीजतन, इस संदर्भ में ऑटो स्टॉप रिकॉर्डिंग शब

  1. Windows पर उन्नत साझाकरण सुविधा का उपयोग करना

    यहां हैं कई बार आपको विंडोज 7 या विंडोज 8 के शेयरिंग विज़ार्ड को अक्षम करने की आवश्यकता होती है ताकि फ़ोल्डर्स और लाइब्रेरी साझा करने के तरीके पर आपका अधिक नियंत्रण हो सके। यदि आप जानते हैं कि विंडोज़ की उन्नत साझाकरण सुविधा का उपयोग कैसे करना है तो यह परिदृश्य इतनी बार नहीं होना चाहिए। इस साझाकरण स