-4

我想编写一个递归函数来检查字符串(0 和 1)是否交替。

例如:

In:  101010
Out: True

In:  110010
Out: False

我该如何编写这样的函数,我该如何理解它的逻辑?

4

1 回答 1

4

我认为您要求一个函数来检查列表是否在 0 和 1 之间交替。

我认为这是用递归解决这个问题的好方法:

alternates ('1':'1':_) = False   -- always false if it repeats
alternates ('0':'0':_) = False   -- always false if it repeats
alternates [] = True
alternates (x:xs) = alternates xs  

最后一行是这样工作的:
我们知道 ifxs里面有一个元素,它x和前两种情况检查的不一样,所以我们可以继续从xs.

我们需要"", and "1"or"0"给 True 以保持一致性;交替意味着没有重复。

于 2012-11-21T21:21:08.520 回答