#P0301. 化学式的原子数

    ID: 3 传统题 文件IO:atom 1000ms 256MiB 尝试: 71 已通过: 15 难度: 7 上传者: 标签>数据结构一本通在线评测线性表

化学式的原子数

题目描述

本题需要使用文件输入输出,文件名为:atom.inatom.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%的数据,化学式由英文字母、数字和小括号组成