0
我應該得到這些結果,前兩個字符串是s1和s2,第三個是我應該得到的結果。 第一個代碼是我寫的,第二個是老師的。新遞歸,找不到解決方案
「Maria」 e 「Norma」: Mnao |
「Mai」 e 「Nor」: Mnaoir |
「Maria」 e 「Noa」:False |
「Mar」 e 「Noa」: MNaora |
「Mar」 e 「Noar」: False
def strin(s1,s2):
count_n(s1,s2)
if len(s1)==len(s2) or s1[n]==s2[n]:
if s1[0]==s2[0]:
return ""
else:
return s1[0]+s2[0]+strin(s1[1:],s2[1:])
else:
return False
def count_n(s1,s2):
global n
n=0
if len(s1)==len(s2) and (len(s1)>0 or len(s2)>0):
if s1[0]==s2[0]:
return n
else:
return (n+1) and count_n(s1[1:],s2[1:])
else:
return n
老師的回答
高清intercala(S1,S2):
if s1=='' and s2 == '':
return ''
if s1=='' or s2 =='':
return False
if s1[0] == s2[0]:
return ''
resp= intercala(s1[1:], s2[1:])
if resp != False:
return s1[0]+s2[0]+resp
else:
return resp
高清intercala2(S1,S2):
if s1=='' and s2 == '':
return ''
if s1=='' or s2 =='':
return False
if s1[-1] == s2[-1]:
return intercala2(s1[0:-1],s2[0:-1])
resp= intercala(s1[0:-1], s2[0:-1])
if resp != False:
return resp + s1[-1]+s2[-1]
else:
return resp
'return(n + 1)and count_n(...)'應該做什麼?由於'n'從0開始,'n + 1'將始終爲真,因此表達式將短路並且遞歸永遠不會被調用。 –
你能嘗試從中提煉出一個特定的技術問題嗎?例如,如果您確切知道您的代碼基於哪種假設不成立,則可以提供更具體和更精確的問題。請參閱[我如何問及回答作業問題?](https://meta.stackoverflow.com/a/334823/14122) - 簡而言之,我們預計作業問題與其他任何問題一樣符合相同的質量標準網站;這些標準包括特異性,並要求提供[mcve] - 可以由想要複製或測試其答案的人直接複製和粘貼的代碼。 –
好的。如果兩個琴絃的長度相同或在同一位置有共同字母,我必須從兩個琴絃中返回可互換的琴絃。如果不是,代碼應該返回False。對不起,如果我不那麼清楚,那麼老師的問題也會讓人困惑。 Iwill也發佈他的回答 –