[英]Python - Determine if a word is in this language or not
我在解決這個家庭作業問題時遇到了麻煩。 如果有人可以給我任何提示或什么開始,那將是偉大的! 提前致謝!
Bob和Joe決定創建一種新語言。 他們語言中的單詞只包含字母A,B和C.他們發明的第一個單詞是AB和C.然后他們決定所有其他單詞的形式是AuB或vCw,其中u,v和w都是以前發明過的話。 (注意,v和w可能是同一個單詞。)編寫一個使用字符串s的函數in_language,如果s在語言中則生成True,否則生成False。
例子:
in_language('C') => True
in_language('AB') => True
in_language('ACB') => True
in_language('ABCAB') => True
in_language('ACBCABCAB') => True
in_language('') => False (empty string with length 0)
in_language('A') => False
in_language('A^BD%AB') => False
in_language('BCA') => False
in_language('ACBACB') => False
這是一個簡單的遞歸算法:
這是SwankyLegg提出的一個實現
def in_language(word):
if word in ('AB', 'C'):
return True
if len(word) < 3: #The only valid words with 2 or less letters are AB and C
return False
if word[0] == 'A' and word[-1] == 'B' and in_language(word[1:-1]):
return True
else:
for i, letter in enumerate(word):
if letter == 'C' and in_language(word[:i]) and in_language(word[i+1:]):
return True
return False
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.