给定二叉树的扩展前序序列,请构造该二叉树,并输出非叶子节点的个数
输入内容:
二叉树的扩展前序序列
输出内容:
输出非叶子节点个数
样例:
输入:
AB#DG##H##IJL####
输出:
5
#include <bits/stdc++.h>
using namespace std;
signed main()
{
string s;
cin >> s;
int res = 0;
int k = s.size();
for (int i = 0; i < s.size(); i++)
{
if (s[i] == '#')
{
k--;
}
}
int j = 0;
for (j = 0; j + 1 < s.size(); j++)
{
if (s[j] == '#' && s[j + 1] == '#')
{
res++;
for (int w = j; w + 1 < s.size(); w++)
{
if (w + 1 == s.size()-1)
{
cout << k - res;
return 0;
}
if (s[w + 1] != '#')
{
j = w;
break;
}
}
}
}
cout << k - res;
return 0;
}