বাইনারি ট্রি স্ট্রিং ফরম্যাটে দেওয়া আছে (যেমন: `(1(2(3()())(4()(5()())))(6(7()())(8()())))`)। কাজ হলো k-তম লেভেলের নোডগুলোর গুণফল বের করা। লেভেল ০ থেকে শুরু হয়।
ইনপুট
tree = "(1(2(3()())(4()(5()())))(6(7()())(8()())))", K = 1
আউটপুট
product of nodes at level k = 12
ইনপুট
tree = "(0(5(6()())(4()(9()())))(7(1()())(3()())))", k = 2
আউটপুট
product of nodes at level k = 72
এলগরিদম
Start
Step 1 → int product(string tree, int k)
int level = -1, product = 1, size = tree.length()
for i = 0 to size-1
if tree[i] == '(' → level++
else if tree[i] == ')' → level--
else if level == k
product *= (tree[i] - '0')
return product
Step 2 → main(): স্ট্রিং ও k ঘোষণা, product() কল
Stop
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
int product(string tree, int k){
int level = -1;
int product = 1;
int size = tree.length();
for (int i = 0; i < size; i++){
if (tree[i] == '(') level++;
else if (tree[i] == ')') level--;
else if (level == k)
product *= (tree[i] - '0');
}
return product;
}
int main(){
string tree = "(1(2(3()())(4()(5()())))(6(7()())(8()())))";
int k = 1;
cout << "Product at level k = " << product(tree, k);
return 0;
}
আউটপুট
product of nodes at level k = 12