🐷大肚肚
CF-51B普及+/提高

表格分析

2.0s💾 256MB

📋 题目描述

一种表格的描述语言,其语法解释为:

TABLE 的描述: <table>ROWS</table> ROW 的描述: <tr>CELLS</tr> CELL 的描述: <td></td> | <td>TABLE</td>

具体的解释: 在语法中,标签:“table”,“tr”,“td”,都成对出现,类似括号配对的规则,一个表格中可以有多个行,每行中可以有多个单元格,单元格中还可以有表格。可以看出,表格可以嵌套。 给你一个表的文本描述,描述遵照上述样例,你需要编写一个分析表格的程序,找出每个表格中的单元格数量。

📥 输入格式

输入数据以任意方式分成非空行,但不超过10行 。 将所有输入行顺序连接形成一个字符串 ss 构成指定表的文本表示。 字符串 ss 长度不超过 50005000 ,串中没有空格,符合给定的语法,只有小写字母用于表示表格标记。

📤 输出格式

仅有一行,以非递减的顺序输出所有表格的大小,多个数,两两之间用一个空格分隔。

📝 样例 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

📚 来源

💡 题目讲解

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