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

C++-এ এক্সপ্রেশনে অপারেটর যোগ করে টার্গেট পাওয়া (Expression Add Operators)

এক্সপ্রেশন অ্যাড অপারেটরস সমস্যা

একটি ডিজিট স্ট্রিং num এবং একটি টার্গেট মান দেওয়া আছে। স্ট্রিংয়ের ডিজিটগুলোর মাঝপথে +, -, * অপারেটর যোগ করে টার্গেট মান পাওয়ার সব সম্ভাব্য এক্সপ্রেশন খুঁজে বের করতে হবে।

উদাহরণ: num="232", target=8 → ["2*3+2", "2+3*2"]

সমাধানের পদ্ধতি (ব্যাকট্র্যাকিং / DFS)

  • রিকার্সিভ ফাংশন solve(idx, currVal, target, expr, lastMul):
    • idx: বর্তমান সূচক
    • currVal: বর্তমান এক্সপ্রেশনের মান
    • expr: বর্তমান এক্সপ্রেশন স্ট্রিং
    • lastMul: গুণফলের চেইন হ্যান্ডল করার জন্য শেষ গুণ করা মান
  • প্রতিটি পজিশনে সম্ভাব্য সব অঙ্কের সমষ্টি (এক বা একাধিক ডিজিট) নিয়ে +, -, * ট্রাই করুন
  • লিডিং জিরো এড়ান (যেমন "05" অবৈধ)
  • idx == size হলে currVal == target চেক করুন

C++ কোড উদাহরণ

ইনপুট

"232", 8

আউটপুট

[2+3*2, 2*3+2, ]
  1. C++-এ এক্সপ্রেশন ট্রি (Expression Tree) উদাহরণসহ

  2. সি++-এ এক্সপ্রেশন ট্রি মূল্যায়ন

  3. C++-এ রিলেশনাল অপারেটর

  4. C++-এ এরিথমেটিক অপারেটর