【题目】
输入一种化合物的化学式,输出各个元素及各个元素的原子数量。
【输入/输出】
输入格式:
一行,一个字符串,形如 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