-4
我想編寫一個遞歸函數來檢查一個字符串(0和1)是否交替。使用haskell中的遞歸檢查交替0和1s
例如:
In: 101010
Out: True
In: 110010
Out: False
我怎麼能寫這樣的功能,我怎麼理解它的邏輯是什麼?
我想編寫一個遞歸函數來檢查一個字符串(0和1)是否交替。使用haskell中的遞歸檢查交替0和1s
例如:
In: 101010
Out: True
In: 110010
Out: False
我怎麼能寫這樣的功能,我怎麼理解它的邏輯是什麼?
我想你問一個函數來檢查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
的最後一行以這種方式工作:
我們知道,如果xs
有一個元素,它不是x
相同,因爲前兩種情況檢查,所以我們可以繼續前進,並從xs
前面檢查。
我們需要""
和"1"
或"0"
給出True以保持一致性;交替意味着不重複。
最後我得到了我的導師。它的工作。謝謝,導師 – sabu
遞歸不是解決這個問題的最好方法。 – dave4420
顯示您的代碼。 – Marcin
輸入是一個列表還是整數(解釋爲二進制數)? – dave4420