কম্পিউটার টিউটোরিয়াল

পাইথনে স্ট্যাক অপারেশন সিমুলেট করে ফাইনাল আন্স বের করা

স্ট্যাক অপারেশন লিস্ট দেওয়া আছে: সংখ্যা (পুশ), POP, DUP (টপ ডুপ্লিকেট), + (টপ দুই যোগ), - (টপ দুই বিয়োগ: top - second)। সব অপারেশন পরিপালন করে টপ এলিমেন্ট বের করুন। ইনভ্যালিড অপারেশনে -১ রিটার্ন করুন।

ইনপুট উদাহরণ

ops = ["5", "2", "POP", "DUP", "3", "+", "15", "-"]

আউটপুট: 7

স্টেপ বাই স্টেপ

  • Push 5, 2 → [5, 2]
  • POP → [5]
  • DUP → [5, 5]
  • Push 3 → [5, 5, 3]
  • + → [5, 8]
  • Push 15 → [5, 8, 15]
  • - → [5, 7] (15-8=7)
  • টপ = 7

পাইথন কোড

def solve(ops):
    stack = []
    for i in ops:
        if i.isnumeric():
            stack.append(int(i))
        elif len(stack) >= 1 and i == "POP":
            stack.pop()
        elif len(stack) >= 1 and i == "DUP":
            p = stack.pop()
            stack.append(p)
            stack.append(p)
        elif len(stack) >= 2 and i == "+":
            a = stack.pop()
            b = stack.pop()
            stack.append(a + b)
        elif len(stack) >= 2 and i == "-":
            a = stack.pop()
            b = stack.pop()
            stack.append(a - b)
        else:
            return -1
    return stack.pop()

# টেস্ট
print(solve(["5","2","POP","DUP","3","+","15","-"]))  # 7

ব্যাখ্যা

স্ট্যাক বেসড এক্সপ্রেশন ইভ্যালুয়েশন। প্রতিটি অপারেশনের পূর্বশর্ত চেক করা হয় (যথেষ্ট এলিমেন্ট আছে কিনা)।

  1. দেওয়া স্ট্রিংটি পাইথন কিওয়ার্ড কিনা চেক করার প্রোগ্রাম

  2. পাইথনে স্ট্রিং প্যাংগ্রাম (Pangram) কিনা চেক করা

  3. পাইথনে ফিবোনাচ্চি সংখ্যা কিনা তা যাচাই করার প্রোগ্রাম

  4. পাইথন প্রোগ্রাম: একটি দেয়া সংখ্যা ফিবোনাচ্চি সংখ্যা কিনা যাচাই করা