কম্পিউটার

C++ এ একটি এক্সপ্রেশনে প্রদত্ত খোলা বন্ধনীর জন্য বন্ধ বন্ধনীর সূচক খুঁজুন


বিবেচনা করুন আমরা বন্ধনী সহ একটি অভিব্যক্তি আছে. যদি একটি প্রারম্ভিক বন্ধনীর সূচী দেওয়া হয় তবে আমাদের এটির সমাপ্তি বন্ধনীটি খুঁজে বের করতে হবে। তাই যদি অভিব্যক্তিটি হয়:(25*6+(88-32+(50/10)+20)), এবং খোলা বন্ধনীর সূচক 6 হয়, তাহলে বন্ধ বন্ধনীটি 23 নম্বরে থাকবে।

এখানে আমরা এই সমস্যা সমাধানের জন্য স্ট্যাক ডেটা-স্ট্রাকচার ব্যবহার করব। আমরা প্রদত্ত সূচী থেকে অভিব্যক্তিটি অতিক্রম করব, এবং খোলা বন্ধনীগুলিকে ঠেলে দেওয়া শুরু করব, যখন বন্ধ বন্ধনী পাওয়া যায়, তারপর স্ট্যাক থেকে পপ উপাদান, যখন স্ট্যাকটি খালি থাকে, তারপর সূচকটি ফেরত দিন।

উদাহরণ

#include<iostream>
#include<stack>
using namespace std;
void getEndingBracketIndex(string exp, int index){
   int i;
   if(exp[index]!='('){
      cout << exp << "Closing bracket of parentheses started at " << index << " present at index -1\n";
      return;
   }
   stack <int> stk;
   for(i = index; i < exp.length(); i++){
      if(exp[i] == '(')
         stk.push(exp[i]);
      else if(exp[i] == ')'){
         stk.pop();
         if(stk.empty()){
            cout << exp << ", Closing bracket of parentheses started at " << index << " present at index " << i << "";
            return;
         }
      }
   }
   cout << exp << ", Closing bracket of parentheses started at " << index << " present at index -1";
}
int main() {
   getEndingBracketIndex("(25*6+(88-32+(50/10)+20))", 6);
}

আউটপুট

(25*6+(88-32+(50/10)+20)), Closing bracket of parentheses started at 6 present at index 23

  1. C++ এ প্রদত্ত অ্যারেতে একটি ফিক্সড পয়েন্ট (সূচকের সমান মান) খুঁজুন

  2. C++ এ পয়েন্টের একটি নির্দিষ্ট সেটের জন্য সহজ বন্ধ পথ খুঁজুন

  3. জিনোম সাজানোর জন্য সি++ প্রোগ্রাম?

  4. একটি প্রদত্ত প্রিফিক্স এক্সপ্রেশনের জন্য একটি এক্সপ্রেশন ট্রি তৈরি করতে C++ প্রোগ্রাম