我正在使用遞回來查找陣列中的元素
def recur_search(arr,n,x): #n is the starting index and x is the target value
if (arr[n] == x):
return n
else:
return recur_search(arr,n 1,x)
arr = [1,2,3,4,5,6,7,8]
print(recur_search(arr,0,5))
該程式僅在陣列中存在元素時才有效。如果元素不存在,程式將拋出 IndexErrors。有沒有優雅的方法來解決問題
type here
我正在考慮首先使用迭代檢查元素的存在,但這超出了遞回的目的。有沒有辦法使用遞回來查找元素,如果它存在,如果它不存在
uj5u.com熱心網友回復:
如果您真的堅持為此使用遞回,那么:
def recur_search(arr, x):
def _search(arr, n, x):
if n < len(arr):
if arr[n] == x:
return n
return _search(arr, n 1, x)
return _search(arr, 0, x)
arr = [1, 2, 3, 4, 5, 6, 7, 8]
print(recur_search(arr, 5))
輸出:
4
uj5u.com熱心網友回復:
我認為您可以設定第一個條件來檢查索引是否超出范圍,然后該元素不存在,如下所示:
def recur_search(arr,n,x): #n is the starting index and x is the target value
if n == len(arr):
return False
elif (arr[n] == x):
return n
else:
return recur_search(arr,n 1,x)
arr = [1,2,3,4,5,6,7,8]
print(recur_search(arr,0,5))
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/528336.html
標籤:Python算法递归
上一篇:遞回輸出不列印
