SP384 FOOL - Any fool can do it
题目描述
你一定认识某个自以为聪明的人。你决定考验他,用下面的问题来看看他的本事:
- 你问他:「你知道集合的语法是什么吗?」
- 他自信地说:「当然知道!集合就是用一对大括号把一个可能为空的元素列表括起来。列表中的每个元素要么是另一个集合,要么是字母表中的一个字母。元素之间用逗号分隔。」
- 你继续问:「如果我给你一个字符串,你能够判断它是否是集合的正确表示吗?」
- 他回答:「当然行,这种小问题谁都能搞定!」
好,现在你逮住他了!你给他展示下面的正式语法规则,来定义一个集合的语法(他之前的描述是非正式的):
```
Set ::= "{" Elementlist "}"
Elementlist ::= | List
List ::= Element | Element "," List
Element ::= Atom | Set
Atom ::= "{" | "}" | ","
```
这里 代表空字符串,即集合中的元素列表可以是空的。很快,他意识到这个任务比他想象的要困难多了,因为字母表中的字符和集合语法中使用的字符重合。他声称,无法高效判断一个由 `{`、`}` 和 `,` 组成的字符串是否是集合的正确表示。
为了驳倒他的说法,你需要编写一个高效的程序来解决这个问题。
输入格式
输入包含多行,每一行是一个仅由 `{`、`}` 和 `,` 组成的字符串。每行字符串的长度最多为 100 个字符。
输出格式
对于每个输入字符串,如果它是集合的正确表示,则输出 `true`;否则输出 `false`。
说明/提示
- 每行字符串的长度最多为 100 个字符。
**本翻译由 AI 自动生成**