1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import pprint import re import sys data = sys.stdin.read() exec (data.replace('(', 'dict(')) # use only for input that you control e.g., for unit-testing pprint.pprint(abc) def repl_flat(m): return "\n".join("<{0}>{1}</{0}>".format(*map(str.strip, s.partition('=')[::2])) for s in m.group(1).split(',')) def eval_nested(expr): val, n = re.subn(r"\(([^)(]+)\)", repl_flat, expr) return val if n == 0 else eval_nested(val) print eval_nested("(%s)" % (data,)) |
aW1wb3J0IHBwcmludAppbXBvcnQgcmUKaW1wb3J0IHN5cwoKZGF0YSA9IHN5cy5zdGRpbi5yZWFkKCkKCmV4ZWMgKGRhdGEucmVwbGFjZSgnKCcsICdkaWN0KCcpKSAjIHVzZSBvbmx5IGZvciBpbnB1dCB0aGF0IHlvdSBjb250cm9sIGUuZy4sIGZvciB1bml0LXRlc3RpbmcKcHByaW50LnBwcmludChhYmMpCgpkZWYgcmVwbF9mbGF0KG0pOgogICAgcmV0dXJuICJcbiIuam9pbigiPHswfT57MX08L3swfT4iLmZvcm1hdCgqbWFwKHN0ci5zdHJpcCwgcy5wYXJ0aXRpb24oJz0nKVs6OjJdKSkKICAgICAgICAgICAgICAgICAgICAgZm9yIHMgaW4gbS5ncm91cCgxKS5zcGxpdCgnLCcpKQoKZGVmIGV2YWxfbmVzdGVkKGV4cHIpOgogICAgdmFsLCBuID0gcmUuc3VibihyIlwoKFteKShdKylcKSIsIHJlcGxfZmxhdCwgZXhwcikKICAgIHJldHVybiB2YWwgaWYgbiA9PSAwIGVsc2UgZXZhbF9uZXN0ZWQodmFsKQoKcHJpbnQgZXZhbF9uZXN0ZWQoIiglcykiICUgKGRhdGEsKSk=
-
upload with new input
-
result: Success time: 0.02s memory: 4780 kB returned value: 0
abc = ( bcd = (efg = 0, ghr = 5, lmn = 10), ghd = 5, zde = (dfs = 10, fge =20, dfg = (sdf = 3, ert = 5), juh = 0)){'bcd': {'efg': 0, 'ghr': 5, 'lmn': 10}, 'ghd': 5, 'zde': {'dfg': {'ert': 5, 'sdf': 3}, 'dfs': 10, 'fge': 20, 'juh': 0}} <abc><bcd><efg>0</efg> <ghr>5</ghr> <lmn>10</lmn></bcd> <ghd>5</ghd> <zde><dfs>10</dfs> <fge>20</fge> <dfg><sdf>3</sdf> <ert>5</ert></dfg> <juh>0</juh></zde></abc>


