#L759695. 小L的决策树 (Easy Version)
小L的决策树 (Easy Version)
T759695 小L的决策树 (Easy Version)
题目背景
灵感来源:机器学习中的决策树 (Decision Tree) 算法。
题目描述
小L最近学习了机器学习中的“决策树”,这是一种非常聪明的分类工具。
为了让你更容易理解,小L画了一张判断给定对象“是奥特曼还是普通人类”的决策树图像:

图1. 奥特曼决策树
这个决策树的执行过程是:
- 先判断给定对象是不是“光之巨人”。如果是,就走
1的分支,直接得出结论:该对象是原生奥特曼。 - 如果不是,就走
0的分支。此时遇到一个新的判断标签,需要继续询问:该对象是否有“变身器”? - 如果有变身器,走
1的分支,得出结论:奥特曼人间体;如果没有,走0的分支,得出结论:普通人类。
在编程中,小L喜欢将这种树状结构压缩成一行字符串的形式。比如上面的奥特曼决策树,小L会把它写成:
{是光之巨人:{0:{拥有变身器:{0:普通人类,1:奥特曼人间体}},1:原生奥特曼}}
为了方便程序处理,小L现在统一用小写英文字母来代表判断标签和最终结论,用数字 0 和 1 来代表分支走向。
例如一棵标准的决策树字符串如下:
{a:{0:{b:{0:d,1:e}},1:c}}
因为这题是 Easy Version,善良的小L并不想为难大家。小L会给你一串表示决策树的字符串,你的任务很简单:请你数一数,这棵决策树里总共有多少个“判断标签”?并将这个数目告诉小L。
输入格式
共一行,包含一个没有空格的字符串,代表字典形式的决策树。
输出格式
一个整数,代表决策树中“判断标签”的数目。
输入输出样例 #1
输入 #1
{a:{0:{b:{0:d,1:e}},1:c}}
输出 #1
2
说明/提示
【样例1解释】
样例1的决策树图像如下:

图2. 样例1决策树
在输入的字符串 {a:{0:{b:{0:d,1:e}},1:c}} 中,提出问题的判断标签为 a 和 b,对应树上的 a 节点和 b 节点。而 c、d、e 是走到底部的最终结论。总共有两个判断标签,因而输出 2。
【数据范围】
对于 100% 的测试数据,保证:
- 决策树字符串总长度不超过 10000。
- 决策树的分支节点和叶子节点的值均为仅由小写英文字母组成的字符串(长度不超过 26)。
- 决策树的分支均由数字
0和1来表示。 - 字符串格式完全合法,不存在多余的空格或其他非法字符。