题目描述
检查一个列表的所有子列表及各层次子列表的子列表的长度,返回所有子列表中最大长度。
样例输入
[4, 1, 3, 11, [1, 6, 8, [1, 2, 3, 4, 5, 6, 7]], [[1, 3], [6, 15]]]
样例输出
7
思路分析
1.输入本题这样一个显示的列表可直接使用eval函数实现,得到的ls为列表类型,其中的子列表也为list类型。
2.使用递归得到子序列最大长度。
列表的长度可直接由len(list)求出。
如果列表中出现子列表,即列表元素为子列表类型,在listlen函数中自身调用自己。
(判断:isinstance函数
isinstance(object, classinfo)
参数
object -- 实例对象。
classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。
返回值
如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。)
3.使用全局变量存储最大长度,最后打印。
maxlen=0
def listlen(a):
lena=len(a)
global maxlen
maxlen=max(lena,maxlen)
for i in range(lena):
if isinstance(a[i],list):
listlen(a[i])
ls=eval(input())
listlen(ls)
print(maxlen)