[英]Running multiline test cases
我有以下提示:
N
( 1 <= N <= 100
),表示要遵循的測試用例的數量。X
( 0 < X <= 100
) 的行,然后是另一個由X
個空格分隔的整數Yn
( -100 <= Yn <= 100
) 組成的行。Python解決方案的具體規則:
您的源代碼必須是單個文件,至少包含一個 main 函數
不要使用任何for
循環、 while
循環或任何列表/集合/字典理解
我將square_sum
函數編寫為:
def square_sum(arr):
if not arr:
return 0
value = arr[0]
if value < 0:
value = 0
return value**2 + square_sum(arr[1:])
square_sum([9, 6, -53, 32, 16])
但是,我無法弄清楚如何在我的函數上運行多行測試用例並以上述格式顯示結果。 有趣的是,可以有任意數量的測試用例,那么如何添加適應它們的能力呢? 我想在這部分得到一些指導,謝謝。
假設這個任務是看如何用遞歸替換所有迭代,並且保留對這樣做的智慧的所有判斷,這里有一個示例解決方案。
您已經實現了內部循環。 我的建議是將解析添加到該循環中,否則您必須使用map
或將其替換為另一個遞歸。
def square_sum(lst):
if not lst:
return 0
value = int(lst[0])
if value < 0:
value = 0
return value**2 + square_sum(lst[1:])
外部循環需要讀取兩行:第一(丟棄的)行將包含元素的數量。 第二行將包含您將傳遞給square_sum
的字符串。 要控制遞歸的深度,請使用輸入的第一行,它告訴您將有多少樣本:
def run(n):
count = int(input())
print(square_sum(input().split()))
if n > 1:
run(n - 1)
def main()
n = int(input())
run(n)
您的問題要求main
功能。 如果您需要在您的模塊中運行它,請繼續執行以下操作:
main()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.