启发自查找列表的“展开大小”。
将RS
不包含任何列表的列表的“递归大小”定义为其长度(包含的项目数),将包含任何列表的列表的“递归大小”定义为其长度与这些列表的递归大小之和。
挑战
编写一个程序或函数,以尽可能少的字节输出任何给定列表的递归大小。
输入是一个列表,可以包含数字,字符串(如果您的语言中有字符串)和类似列表。
例如:
RS([]) = 0
RS([[]]) = 1
RS([4, 5, 6]) = 3
RS(["four", "five", "six"]) = 3
RS(["[[[[]]]]", "[][][][][]", "][][[[]]][]["]) = 3
RS([[4, 5, 6]]) = 4
RS([["four", "five", "six"]]) = 4
RS([["[[[[]]]]", "[][][][][]", "][][[[]]][]["]]) = 4
RS([[4], [5], [6]]) = 6
RS([["four"], ["five"], ["six"]]) = 6
RS([["[[[[]]]]"], ["[][][][][]"], ["][][[[]]][]["]]) = 6
RS([[[[[[[[[]]]]]]]]]) = 8
RS([[],[],[],[],[],[],[],[]]) = 8
RS([[],[],[[]],[[[[]]]]]) = 8
RS([0,[-1],[2.3,-4.3],[5,[6]],[7,[8,9,[10,11,[12,13,14]]]]]) = 22
请注意,如果您的语言没有字符串,但是有字符列表,则"strings"
上面包含的示例实际上可能是字符列表,并且结果较大。举个例子:
RS([['f','o','u','r'], ['f','i','v','e'], ['s','i','x']]) = 14
这是代码高尔夫球,因此最短答案以字节为单位;一如既往,没有滑稽的生意。