def is_sorted(s):
if s==[]:
return True
else:
return s[0]<is_sorted(s[1:])
调用这个函数应该得到:
#1 is_sorted([])-->True
#2 is_sorted([1,2,3,4,5,6,7])-->True
#3 is_sorted([1,2,3,7,4,5,6])-->False
但是我的函数在#2 上总是返回 False 而不是 True,有人可以指出我函数的问题吗?谢谢。
最佳答案
问题:
问题是您正在将整数 s[0]
与 is_sorted(s[1:])
的返回值进行比较,后者是一个 bool 值。 (这有点模糊,因为 python 自动将 bool 值转换为整数(0 或 1))
修复:
您的返回值必须是一个 bool 值(在输出中指定),因此您需要提出不同的比较和不同的递归调用。
关于python - 一个递归函数,用于检查 int 列表是否按升序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26837787/