Давайте визначимо функцію "нерозгорнутого розміру" uвкладеного списку l(що містить лише списки) за такими правилами:
- Якщо
lпорожній, тоu(l)1. - Якщо
lвін не порожній,u(l)дорівнює сумі нерозгорнутих розмірів кожного елементаl, плюс один.
Ваше завдання - написати програму (або функцію), яка приймає список як вхід і виводить (або повертає) нерозгорнутий розмір списку.
Випробування:
[] -> 1
[[[]],[]] -> 4
[[[]],[[[[]],[]]],[[[]],[[[[]],[[],[[]]]]]]] -> 19
[[[[]]]] -> 4
Це код-гольф , тому найкоротша програма (у байтах) виграє.
[[[]][]]замість цього [[[]],[]]у вашому другому прикладі?
["This is some text [with square brackets in] ...[& maybe more than one pair]"]?
]здається найкоротшим рішенням у багатьох мовах, є також багато відповідей, які насправді вирішують цю проблему за допомогою маніпуляції зі списком, і принаймні в есолангах підрахунок випадків фіксованого символу також сильно відрізняється від підрахунку виникнення вхідного символу.
()замість[]?