কম্পিউটার

C++ এ বন্ধনী যুক্ত করার বিভিন্ন উপায়


ধরুন আমাদের কাছে সংখ্যা এবং অপারেটরগুলির একটি স্ট্রিং আছে, আমাদের সংখ্যা এবং অপারেটরগুলিকে গোষ্ঠীভুক্ত করার বিভিন্ন সম্ভাব্য উপায়গুলি গণনা করার থেকে সমস্ত সম্ভাব্য ফলাফল খুঁজে বের করতে হবে। এখানে বৈধ অপারেটর হল +, - এবং *। সুতরাং ইনপুট যদি “2*3-4*5” এর মত হয়, তাহলে আউটপুট হবে [-34, -14, -10, -10, 10]। এর কারণ −

  • (2*(3-(4*5))) =-34

  • ((2*3)-(4*5)) =-14

  • ((2*(3-4))*5) =-10

  • (2*((3-4)*5)) =-10

  • (((2*3)-4)*5) =10

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

  • একটি মেমো নামে একটি মানচিত্র সংজ্ঞায়িত করুন৷

  • সমাধান() নামক একটি পদ্ধতি সংজ্ঞায়িত করুন। এটি ইনপুট স্ট্রিংটিকে ইনপুট হিসাবে গ্রহণ করবে৷

  • ret

    নামে একটি অ্যারে তৈরি করুন
  • যদি মেমোতে ইনপুট থাকে, তাহলে মেমো[ইনপুট]

    ফেরত দিন
  • 0 থেকে ইনপুট স্ট্রিং-এর মাপ −

    এর মধ্যে
    • যদি ইনপুট[i] কোনো সমর্থিত অপারেটর হয়, তাহলে

      • একটি অ্যারে অংশ 1 :=সমাধান (0 থেকে i - 1 পর্যন্ত ইনপুটের সাবস্ট্রিং)

      • একটি অ্যারে part2 :=সমাধান (i থেকে স্ট্রিংয়ের শেষ পর্যন্ত ইনপুটের সাবস্ট্রিং)

      • j এর জন্য রেঞ্জ 0 থেকে part1 এর আকার

        • k এর জন্য রেঞ্জ 0 থেকে part2 এর আকার

          • যদি ইনপুট[i] যোগ হয়, তাহলে

            • অংশ[j] + অংশ[k] সম্পাদন করুন এবং ret এ যোগ করুন

          • যদি ইনপুট[i] গুণ হয়, তাহলে

            • অংশ[j] * অংশ[k] সম্পাদন করুন এবং ret এ যোগ করুন

          • যদি ইনপুট[i] বিয়োগ হয়, তাহলে

            • অংশ [j] - অংশ[k] সম্পাদন করুন এবং ret এ যোগ করুন

  • যদি ret খালি থাকে, তাহলে পূর্ণসংখ্যা হিসাবে ইনপুট স্ট্রিং ফেরত দিন

  • মেমো[ইনপুট] :=রিট, এবং রিটার্ন রিটার্ন

উদাহরণ (C++)

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

#include নেমস্পেস ব্যবহার করে std;void print_vector(vector v){ cout <<"["; for(int i =0; i> মেমো; ভেক্টর diffWaysToCompute(স্ট্রিং ইনপুট) { ভেক্টর  ret; if(memo.count(ইনপুট)) মেমো [ইনপুট] রিটার্ন করুন; for(int i =0; i  part1 =diffWaysToCompute(input.substr(0, i)); ভেক্টর  part2 =diffWaysToCompute(input.substr(i + 1)); for(int j =0; j  

ইনপুট

"2*3-4*5"

আউটপুট

<প্রে>[-৩৪, -১০, -১৪, -১০, ১০, ]

  1. C++ এ 1, 3 এবং 4 এর যোগফল হিসাবে N প্রকাশ করার বিভিন্ন উপায়ে গণনা

  2. C++ এ স্ট্রিং-এ বোল্ড ট্যাগ যোগ করুন

  3. C++ এ দুটি ভিন্ন সেট থেকে এক বা একাধিক জোড়া নির্বাচন করার উপায়

  4. দুই যোগফল IV - ইনপুট হল C++ এ একটি BST