CF-51B普及+/提高
表格分析
⏱ 2.0s💾 256MB
📋 题目描述
一种表格的描述语言,其语法解释为:
TABLE 的描述: <table>ROWS</table>
ROW 的描述: <tr>CELLS</tr>
CELL 的描述: <td></td> | <td>TABLE</td>
具体的解释: 在语法中,标签:“table”,“tr”,“td”,都成对出现,类似括号配对的规则,一个表格中可以有多个行,每行中可以有多个单元格,单元格中还可以有表格。可以看出,表格可以嵌套。 给你一个表的文本描述,描述遵照上述样例,你需要编写一个分析表格的程序,找出每个表格中的单元格数量。
📥 输入格式
输入数据以任意方式分成非空行,但不超过10行 。 将所有输入行顺序连接形成一个字符串 构成指定表的文本表示。 字符串 长度不超过 ,串中没有空格,符合给定的语法,只有小写字母用于表示表格标记。
📤 输出格式
仅有一行,以非递减的顺序输出所有表格的大小,多个数,两两之间用一个空格分隔。
📝 样例 1
输入
<table><tr><td></td></tr></table>
输出
1
📝 样例 2
输入
<table> <tr> <td> <table><tr><td></td></tr><tr><td></ td ></tr><tr ><td></td></tr><tr><td></td></tr></table> </td> </tr> </table>
输出
1 4
📝 样例 3
输入
<table><tr><td> <table><tr><td> <table><tr><td> <table><tr><td></td><td></td> </tr><tr><td></td></tr></table> </td></tr></table> </td></tr></table> </td></tr></table>
输出
1 1 1 3
📚 来源
Problem:CF-51B
Contest:Codeforces Beta Round #48
💡 题目讲解
1
理解题意
题目给了一种描述表格的语法:
<table> → 一个表格开始,里面有多行 <tr>
<tr> → 一行开始,里面有多个单元格 <td>
<td> → 一个单元格。可以是空的,也可以里面再套一个 <table>
标签都是成对的:<table>..</table>、<tr>..</tr>、<td>..</td>。
🎯 目标:统计每个 <table> 标签里有多少个 <td>(单元格),结果排序后输出。
样例 1:<table><tr><td></td></tr></table>
层级关系:
<table> ← 这个表格里
<tr> ← 有一行
<td></td> ← 里面只有一个空单元格
</tr>
</table>
这个表格有 1 个 td → 答案 "1"。
嵌套举例:<table><tr><td><table><tr><td></td></tr></table></td></tr></table>
这是表格套表格:
<table> ← 外层表格(1 个 td)
<tr><td>
<table> ← 内层表格(1 个 td)
<tr><td></td></tr>
</table>
</td></tr>
</table>
外层 1 个 td,内层 1 个 td → 答案 "1 1"。
1 / 6