我一直在尝试回答这个问题,但是没有取得太大进展。该问题要求生成一个字符串,其中输入字符串中所有重复字符都被替换为该字符的单个实例。
例如,
"因为我正在尝试使用累积递归来完成这个任务,所以到目前为止我已经做了:"
但这似乎不正确。请帮我修改以使其正常工作。
谢谢!
例如,
(remove-repeats "aaaab") => "ab"
(remove-repeats "caaabb aa") => "cab a"
"因为我正在尝试使用累积递归来完成这个任务,所以到目前为止我已经做了:"
(define (remove-repeats s)
(local
[(define (remove-repeats-acc s1 removed-so-far)
(cond
[(empty? (string->list s1))""]
[else
(cond
[(equal? (first (string->list s1)) (second (string->list s1)))
(list->string (remove-repeats-acc (remove (second (string->list s1)) (string->list s1)) (add1 removed-so-far)))]
[else (list->string (remove-repeats-acc (rest (string->list s1)) removed-so-far))])]))]
(remove-repeats-acc s 0)))
但这似乎不正确。请帮我修改以使其正常工作。
谢谢!