找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 405|回复: 3

[研讨] 求列表中最长连续非递增项

[复制链接]

已领礼包: 1857个

财富等级: 堆金积玉

发表于 2017-7-15 13:54:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 aimisiyou 于 2017-7-15 13:56 编辑

如(1 2 3 3 2 4 1 2 2 4 3 1 4 2 3 1)中最长连续非递增项为(4 3 1)。若项数相同,取第一位大的;若第一位相同,取第二位数值大的;……(4 3 1)〉(3 3 2)。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1857个

财富等级: 堆金积玉

 楼主| 发表于 2017-7-22 17:08:12 | 显示全部楼层
(defun fun (lst)
  (cons (apply 'strcat (mapcar '(lambda (x) (rtos x 2 10))  lst)) lst)
)
(defun ffun (lst)
(setq i 1 n (length lst) vc (list (car lst))  slst nil)
(while (<  i n)
    (setq va (car vc))
    (setq vb (nth i  lst)  )  
     (if   (<= vb  va )      
            (setq vc (cons vb vc) )
            (progn
                (setq slst (cons (reverse vc) slst) )
                (setq  vc (list vb))
            )
       )
      (setq i (+ i 1))
  )
  (reverse (cons (reverse vc ) slst))
)
(setq lst '(6 3 2 5 4 1 8 9 8 7 6 2 3 8 2) )
(mapcar ' fun (ffun lst))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1857个

财富等级: 堆金积玉

 楼主| 发表于 2017-7-22 17:10:35 | 显示全部楼层
转化为对字符串先按长度,再按各位上的大小排序。如'("45" "123" "43" "21")排序结果为'("123" "45" "43" "21")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1857个

财富等级: 堆金积玉

 楼主| 发表于 2017-7-23 09:11:15 | 显示全部楼层
本帖最后由 aimisiyou 于 2017-7-23 09:13 编辑

(defun fun (lst)
  (defun fun1 (lst)
      (cons (apply 'strcat (mapcar '(lambda (x) (rtos x 2 10))  lst)) lst)
   )
  (defun fun2 (lst)
     (setq i 1 n (length lst) vc (list (car lst))  slst nil)
     (while (<  i n)
            (setq va (car vc))
            (setq vb (nth i  lst)  )  
            (if  (<= vb  va )      
                 (setq vc (cons vb vc) )
                 (progn
                      (setq slst (cons (reverse vc) slst) )
                      (setq  vc (list vb))
                  )
             )
            (setq i (+ i 1))
       )
      (reverse (cons (reverse vc ) slst))
    )
   (mapcar  'cdr   (vl-sort (mapcar ' fun1 (fun2 lst)) '(lambda (a b)   (if  (= (strlen (car a)) (strlen (car b)))
                                                                                                           (> (car a) (car b))
                                                                                                            (> (strlen (car a)) (strlen (car b)))
                                                                                                       )
                                                                                )                                                                                     )
     )
)
(fun '(1 2 3 3 2 4 1 2 2 4 3 1 4 2 3 1))

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-3-29 22:39 , Processed in 0.305916 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表