返回數組的總和,除了忽略以6開頭的數字部分並延伸到下一個7(每6個會跟着至少一個7) 。沒有號碼返回0。尋找一個更優雅的解決方案
sum67([1, 2, 2]) ? 5 sum67([1, 2, 2, 6, 99, 99, 7]) ? 5 sum67([1, 1, 6, 7, 2]) ? 4
def sum67(nums):
dontadd = 0
sum = 0
for i in range(0, len(nums)):
if dontadd == 0:
if nums[i] == 6:
dontadd = 1
else:
sum += nums[i]
else:
if nums[i] == 7:
dontadd = 0
else:
pass# nothing happens. It is useful as a placeholder when a statement is required syntactically
return sum
尋找從codingbat一個更優雅的解決這個問題。這個答案似乎並不直觀,因爲它可能是
類似這樣的問題屬於無論是在http://codereview.stackexchange.com/如果你想要全面改善,或http:// codegolf.stackexchange.com/如果你想看到其他解決方案的「難題」 – agf 2012-04-17 05:19:58
我正在投票關閉這個問題作爲題外話,因爲它要求推薦一個「更優雅」的解決方案的工作代碼,它應該最好在codereview上。 – 2016-10-28 14:42:47