Схема вопроса поменьше - PullRequest
0 голосов
/ 04 июня 2011

Вопрос требует, чтобы я завершил функцию меньшего размера, которая потребляет строку и создает строку. Используемая строка состоит только из числовых символов, которые мы будем называть цифрами (1-9,0). Полученная строка будет состоять из строки длиной 1 (одна цифра), полученной путем многократного удаления с первой или последней цифрой в строке, в зависимости от того, какое значение больше.

Например,

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

Если есть связь (между первой и последней цифрой), удалите последнюю.

Например,

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

Так как мне написать код схемы для этого вопроса? Большое спасибо!

1 Ответ

1 голос
/ 04 июня 2011

Как насчет этого?

(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))])))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...