Давайте определим функцию «развернутого размера» 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]"]
?
]
действительно кажется самым коротким решением во многих языках, есть также много ответов, которые фактически решают эту проблему посредством манипулирования списком, и, по крайней мере, в esolangs подсчет вхождений фиксированного символа также весьма отличается от подсчета вхождения входного символа.
()
вместо[]
?