#P0301. 化学式的原子数
化学式的原子数
题目描述
本题需要使用文件输入输出,文件名为:atom.in、atom.out。
给定一个字符串化学式,请计算每种原子的数量。原子总是以一个大写字母开始,接着跟随0个或者任意个小写字母,表示原子的名字。
如果数量大于1,原子后会跟着数字表示原子的数量。如果数量等于1则不会跟数字,数字不大于1000。
- 例如:"H20"和"H2O2"是可行的,但"H1O2"是不行的。 两个化学式连在一起可以构成新的化学式。
- 例如:"H2O2He3Mg4"也是化学式。 由括号括起的化学式并佐以数字(可选择性添加)也是化学式。
- 例如"(H2O2)"和"(H2O2)3"。
请你编写程序计算原子的数量,要求原子的名字按字典序排序,后面跟着输出他的数量,一个一行。
输入描述
一行,一个字符串,表示合法的化学式。
输出描述
输出每个原子的数量,要求按原子名字典序排序,后面跟上原子数量。
输入输出样例
输入 #1
H2O
输出 #1
H 2
O 1
输入 #2
H2MgO2
输出 #2
H 2
Mg 1
O 2
输入 #3
K4(ON(SO3)2)2
输出 #3
K 4
N 2
O 14
S 4
说明/提示
【数据范围】
化学式字符串长度最多1000,并且总是合法的。
10%的数据,化学式只有大写字母,且不含括号
30%的数据,化学式只有大小写字母和数字,且不含括号
100%的数据,化学式由英文字母、数字和小括号组成