কম্পিউটার

Trie ব্যবহার করে স্বয়ংক্রিয়-সম্পূর্ণ বৈশিষ্ট্য


আমাদের একটি ট্রাই আছে, এবং যখন একজন ব্যবহারকারী একটি অক্ষর প্রবেশ করে, তখন আমাদের ট্রাই-এর সাথে মিলে যাওয়া স্ট্রিংটি দেখাতে হবে। এই বৈশিষ্ট্যটিকে আমরা স্বয়ংক্রিয়-সম্পূর্ণতা বলে থাকি। উদাহরণস্বরূপ, যদি একটি Trie তে "xyzzzz,""xyz," "xxxyyxzzz" থাকে এবং যখন ব্যবহারকারী xy লিখবেন , তারপর আমাদের তাদের xyzzzz, xyz দেখাতে হবে , ইত্যাদি..,

ফলাফল অর্জনের পদক্ষেপ।

  • স্ট্যান্ডার্ড ট্রাই অ্যালগরিদম ব্যবহার করে স্ট্রিং অনুসন্ধান করুন৷

  • যদি স্ট্রিংটি উপস্থিত না থাকে, তাহলে -1 ফেরত দিন।

  • যদি স্ট্রিংটি উপস্থিত থাকে এবং Trie-তে একটি শব্দের শেষ হয়, তাহলে স্ট্রিংটি প্রিন্ট করুন।

  • যদি ম্যাচিং স্ট্রিংটির কোনো নোড না থাকে, তাহলে ফিরে আসুন।

  • অন্যথায় সমস্ত নোড প্রিন্ট করুন।

আসুন কোডিং শুরু করি।

ট্রাই নোড ক্লাসের জন্য
# 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. মাইক্রোসফ্ট স্টোরের আমার ডিভাইসে ইনস্টল করুন বৈশিষ্ট্যটি ব্যবহার করে

  2. একটি গোপন VLC বৈশিষ্ট্য:এটি একটি ভিডিও সম্পাদক হিসাবে ব্যবহার করা

  3. স্বয়ংক্রিয় স্টপ রেকর্ডিং বৈশিষ্ট্য ব্যবহার করে কীভাবে আপনার রেকর্ডিং বন্ধ করবেন?

  4. উইন্ডোজে উন্নত শেয়ারিং বৈশিষ্ট্য ব্যবহার করা