এই টিউটোরিয়ালে, আমরা বন্ধনীর ভারসাম্যের জন্য খরচ খুঁজে বের করার জন্য একটি প্রোগ্রাম নিয়ে আলোচনা করব।
এর জন্য আমাদের বন্ধনীর একটি ক্রম সরবরাহ করা হবে। আমাদের কাজ হল এই বন্ধনীগুলিকে সমীকরণে তাদের অবস্থান এক দ্বারা পরিবর্তন করে ভারসাম্য করা এবং যদি ভারসাম্য বজায় রাখা সম্ভব না হয় তবে -1 প্রিন্ট করা৷
উদাহরণ
#include <bits/stdc++.h> using namespace std; int costToBalance(string s) { if (s.length() == 0) cout << 0 << endl; //storing count of opening and //closing parentheses int ans = 0; int o = 0, c = 0; for (int i = 0; i < s.length(); i++) { if (s[i] == '(') o++; if (s[i] == ')') c++; } if (o != c) return -1; int a[s.size()]; if (s[0] == '(') a[0] = 1; else a[0] = -1; if (a[0] < 0) ans += abs(a[0]); for (int i = 1; i < s.length(); i++) { if (s[i] == '(') a[i] = a[i - 1] + 1; else a[i] = a[i - 1] - 1; if (a[i] < 0) ans += abs(a[i]); } return ans; } int main(){ string s; s = ")))((("; cout << costToBalance(s) << endl; s = "))(("; cout << costToBalance(s) << endl; return 0; }
আউটপুট
9 4