【发布时间】:2020-07-17 22:47:28
【问题描述】:
我编写了这个 Racket 代码来查找并显示列表列表中最长的子列表,但是如果多个子列表的长度相等且都是最长的,我希望它返回最后一个具有最长长度的子列表。
(define longest '())
;returns longest sublist in a list of lists
(define (longestSub losl)
(set! longest (car losl))
(for ([x (- (length losl) 1)])
(if (>= (length (list-ref losl x)) (length longest))
(set! longest (list-ref losl x))
(void losl)))
(display longest))
例如,如果“losl”是 ((1 2) (3 4 5) (6 7 8)),我希望它返回 (6 7 8),但现在它会返回 (3 4 5) .谁能告诉我我做错了什么?
【问题讨论】: