繁体   English   中英

方案问题较小

[英]Scheme question smaller

这个问题要求我完成一个较小的 function,它消耗一个字符串并产生一个字符串。 使用的字符串仅包含数字字符,我们将其称为数字 (1-9,0)。 生成的字符串将包含一个长度为 1(单个数字)的字符串,该字符串通过重复删除字符串中的第一个或最后一个数字而获得,具体取决于哪个值更大。

例如,

(smaller "5284")
=> (smaller "284")
=> (smaller "28")
=> (smaller "2")
=> "2"

如果有平局(第一个和最后一个数字之间),删除最后一个。

例如,

(smaller "131")
=> (smaller "13")
=> (smaller "1")
=> "1"

那么如何为这个问题编写 Scheme 代码呢? 非常感谢!

像这样的事情呢?

(define smaller
  (lambda (str)
    (cond
      [(= 1 (string-length str)) str]
      [(> (string-ref str 0) (string-ref str (- (string-length str) 1))) (smaller (substring str 0 (- (string-length str) 1)))]
      [else (smaller (substring str 1))])))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM