-2

Scheme:一个函数,它将确定传入的列表是否遵循 AB 模式。AB 模式将是 (ABABAB) 或 (AB) 或 A 和 B 的任意组合重复。A 和 B 不是变量,我的字面意思是字母 A 后跟字母 B。

4

1 回答 1

0

一种天真的但简单的算法:寻找列表头部的模式;如果匹配,则返回 true,如果它不在列表的其余部分中查找模式。

(define (sublist? pattern list)
  (and (not (null? list))
       (or (match? pattern list)
           (sublist? pattern (cdr list)))))

并且match?功能可以是:

(define (match? p l)
  (or (null? p)
      (and (not (null? l))
           (eq?    (car p) (car l))
           (match? (cdr p) (cdr l)))))
于 2013-10-17T18:07:02.433 回答