文字列を受け取り、配列を返す Python 関数が必要です。配列内の各項目は、文字またはこの種の別の配列のいずれかです。入れ子になった配列は、入力文字列で '(' で始まり ')' で終わるようにマークされます。
したがって、関数は次のように動作します。
1) foo("abc") == ["a", "b", "c"]
2) foo("a(b)c") == ["a", ["b"], "c"]
3) foo("a(b(c))") == ["a", ["b", ["c"]]]
4) foo("a(b(c)") == error: closing bracket is missing
5) foo("a(b))c") == error: opening bracket is missing
6) foo("a)b(c") == error: opening bracket is missing
注: 純粋に機能的なソリューションをお勧めします。