➤ Problem Link : DYZIO
👉 Hint : Recursion
✅ C++ Solution :
#include<bits/stdc++.h>
using namespace std;
int ans=-1;
unordered_map<int,int> mp;
void Recur(string s,int depth,int &cuts,int &i)
{
if(i==s.length())
return;
if(mp.find(depth)==mp.end())
mp[depth]=cuts;
ans=max(ans,depth);
if(s[i]=='1')
{
cuts++;
i++;
Recur(s,depth+1,cuts,i);
Recur(s,depth+1,cuts,i);
}
else
i++;
}
int main()
{
int n;
string s;
while(scanf("%d",&n)!=EOF)
{
mp.clear();
int cuts=0,i=0;
ans=-1;
cin>>s;
Recur(s,0,cuts,i);
cout<<mp[ans]<<endl;
}
}
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!
