提取化学式中各个元素的原子数量

2022年7月23日 | 分类: 【编程】

【题目】

输入一种化合物的化学式,输出各个元素及各个元素的原子数量。

【输入/输出】

输入格式:

一行,一个字符串,形如 ExFyGz ,表示化合物 \(E_xF_yG_z\) 。

输出格式:

E: x=?
F: y=?
G: z=?

【题解】

对 ExFyGz 做字符串处理:
1. 判断化学元素:化学元素符号的规则是一个大写单字母+0~2个小写单字母。
2. 提取每种元素的原子数目:当原子数目为1时,省写;当原子数目大于1时,写数目。
3. 考虑到存在括号的情况,单独统计括号中的化学式。
4. 将结果中重复元素的数目合并。

【测试】

案例1:乙烯(原子数目大于1)

\(C_2H_4\)

\(\begin{cases}
C: x=2 \\
H: y=4 \\
\end{cases}\)

案例2:一氧化碳(原子数目为1)

\(CO\)

\(\begin{cases}
C: x=1 \\
O: y=1 \\
\end{cases}\)

案例3:三氧化二铁(元素符号有1个小写字母)

\(Fe_2O_3\)

\(\begin{cases}
Fe: x=2 \\
O: y=3 \\
\end{cases}\)

案例4:硫酸铝(存在括号)

\(Al_2{(SO_4)}_3\)

\(\begin{cases}
Al: x=2 \\
S: y=3 \\
O: z=12 \\
\end{cases}\)

案例5:氰化铵(需要将重复元素的数目合并)

\({NH_4}{CN}\)

\(\begin{cases}
N: x=2 \\
H: y=4 \\
C: z=1 \\
\end{cases}\)

【参考】

https://blog.csdn.net/kangyucheng/article/details/83792319
https://blog.csdn.net/Ackerman2/article/details/120025193