কম্পিউটার

পাইথনে দৈনিক তাপমাত্রা


ধরুন আমাদের দৈনিক তাপমাত্রা T-এর একটি তালিকা আছে, আমাদের একটি তালিকা দিতে হবে যাতে, ইনপুটে প্রতিটি দিনের জন্য, দেখায় যে উষ্ণ তাপমাত্রা পর্যন্ত আমাদের কত দিন অপেক্ষা করতে হবে . যদি ভবিষ্যতে এমন কোন দিন না থাকে যার জন্য এটি সম্ভব, তার পরিবর্তে 0 সংরক্ষণ করুন। উদাহরণস্বরূপ, যদি T =[73, 74, 75, 71, 69, 72, 76, 73], আউটপুট হবে [1, 1, 4, 2, 1, 1, 0, 0]।

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

  • উত্তর :=টি আকারের একটি অ্যারে, এবং এটি 0 দিয়ে পূরণ করুন
  • একটি স্ট্যাক সংজ্ঞায়িত করুন, এবং স্ট্যাকের মধ্যে 0 ঢোকান এবং i :=1
  • যখন আমি এর দৈর্ঘ্য
  • যখন স্ট্যাক উপাদান সংখ্যা 0 এবং T[i]> T[স্ট্যাক শীর্ষ উপাদান]
    • সূচক :=স্ট্যাক শীর্ষ উপাদান
    • উত্তর[সূচি] :=i – সূচক
    • স্ট্যাক থেকে শীর্ষ উপাদান মুছুন
  • যদি স্ট্যাকের দৈর্ঘ্য 0 বা T[i] <=T[স্ট্যাকের শীর্ষ উপাদান]
    • স্ট্যাকে i ঢোকান
  • i 1 দ্বারা বাড়ান
  • উত্তর ফেরত দিন
  • উদাহরণ(পাইথন)

    আসুন আরও ভালোভাবে বোঝার জন্য নিচের বাস্তবায়ন দেখি −

    class Solution(object):
       def dailyTemperatures(self, T):
          ans = [0 for i in range(len(T))]
          stack = []
          stack.append(0)
          i=1
          while i <len(T):
             while len(stack) and T[i]>T[stack[-1]]:
                index = stack[-1]
                ans[index] = i-index
                stack.pop()
             if not len(stack) or T[i]<=T[stack[-1]]:
                stack.append(i)
             i+=1
          return ans
    ob1 = Solution()
    print(ob1.dailyTemperatures([73,74,75,71,69,72,76,73]))

    ইনপুট

    [73,74,75,71,69,72,76,73]

    আউটপুট

    [1, 1, 4, 2, 1, 1, 0, 0]

    1. পাইথনে হিস্টোগ্রামে সবচেয়ে বড় আয়তক্ষেত্র

    2. পাইথনে বৃষ্টির পানি আটকানো

    3. Python-এ Binary Tree Inorder Traversal

    4. পাইথনে স্ট্যাক এবং সারি হিসাবে তালিকা ব্যবহার করা