Chemical formula parser

Write codeHard35 min

Your task

Given a chemical formula as a string, return the count of each atom. An atom name starts with an uppercase letter followed by zero or more lowercase letters. A name or a parenthesized group may be followed by a multiplicity (an integer >= 2; absent means 1), e.g. Mg(OH)2. Groups may nest. Return a list of [name, count] pairs sorted alphabetically by name.

Examples

count_atoms(formula: str) -> list[list]
Example 1
Inputcount_atoms("H2O")
Output[["H", 2], ["O", 1]]