কম্পিউটার

পাইথনে একটি পরিসরে নোডের সংখ্যা খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের একটি BST আছে, এবং আমাদেরও বাম এবং ডান সীমা l এবং r আছে, আমাদেরকে রুটের সমস্ত নোডের গণনা খুঁজে বের করতে হবে যার মানগুলি l এবং r (অন্তর্ভুক্ত) এর মধ্যে উপস্থিত রয়েছে।

সুতরাং, যদি ইনপুট মত হয়

পাইথনে একটি পরিসরে নোডের সংখ্যা খুঁজে বের করার প্রোগ্রাম

l =7, r =13, তাহলে আউটপুট হবে 3, যেহেতু তিনটি নোড আছে:8, 10, 12।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব−

  • স্ট্যাক :=একটি স্ট্যাক এবং প্রথমে রুট সন্নিবেশ করুন, গণনা করুন :=0

  • স্ট্যাক খালি না থাকার সময়, করুন

    • নোড :=স্ট্যাকের শীর্ষ উপাদান, এবং পপ উপাদান

    • যদি নোড নাল না হয়, তাহলে

      • যদি l <=নোডের ডেটা <=r, তাহলে

        • গণনা :=গণনা + 1

        • স্ট্যাক :=নোডের ডানদিকে এবং নোডের বামে স্ট্যাকে ধাক্কা দিন

      • অন্যথায় যখন নোডের ডেটা

        • স্ট্যাক :=স্ট্যাকের মধ্যে নোডের ডানদিকে পুশ করুন

        • অন্যথায়,

        • স্ট্যাক :=স্ট্যাকের মধ্যে নোডের বাম দিকে ধাক্কা দিন

  • ফেরত গণনা

উদাহরণ

from collections import deque
class TreeNode:
   def __init__(self, data, left = None, right = None):
      self.data = data
      self.left = left
      self.right = right
class Solution:
   def solve(self, root, l, r):
      stack, count = [root], 0
      while stack:
         node = stack.pop()
         if node:
            if l <= node.data <= r:
               count += 1
               stack += [node.right, node.left]
            elif node.data < l:
               stack += [node.right]
            else: stack += [node.left]
      return count
ob = Solution()
root = TreeNode(12)
root.left = TreeNode(8)
root.right = TreeNode(15)
root.left.left = TreeNode(3)
root.left.right = TreeNode(10)
print(ob.solve(root, 7,13))

ইনপুট

root = TreeNode(12)
root.left = TreeNode(8)
root.right = TreeNode(15)
root.left.left = TreeNode(3)
root.left.right = TreeNode(10)
7,13

আউটপুট

3

  1. পাইথন ব্যবহার করে সমস্ত নোডে পৌঁছানোর জন্য ন্যূনতম সংখ্যক শীর্ষবিন্দু খুঁজে বের করার প্রোগ্রাম

  2. পাইথন ব্যবহার করে ভাল লিফ নোড জোড়ার সংখ্যা খুঁজে বের করার প্রোগ্রাম

  3. পাইথন প্রোগ্রাম একটি তালিকার ক্ষুদ্রতম সংখ্যা খুঁজে বের করতে

  4. পাইথন প্রোগ্রামে একটি সংখ্যার জোড় গুণনীয়কের সমষ্টি খুঁজুন