CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。
CheckiO 官网:https://checkio.org/
我的 CheckiO 主页:https://py.checkio.org/user/TRHX/
CheckiO 题解系列专栏:https://itrhx.blog.csdn.net/category_9536424.html
CheckiO 所有题解源代码:https://github.com/TRHX/Python-CheckiO-Exercise
题目描述
【Even the Last】:给你一个整数数组,需要你把具有偶数索引的元素相加(0,2,4 …),然后把相加后得到的数与最后一个元素相乘,不要忘记,第一个元素的索引是0,如果传入的是一个空数组,则应该返回0。
【链接】:https://py.checkio.org/mission/even-last/
【输入】:一个整数列表
【输出】:运算得到的结果(整数值类型)
【前提】:0 ≤ len(array) ≤ 20;all(isinstance(x, int) for x in array);all(-100 < x < 100 for x in array)
【范例】:
checkio([0, 1, 2, 3, 4, 5]) == 30
checkio([1, 3, 5]) == 30
checkio([6]) == 36
checkio([]) == 0
代码实现
def checkio(array):"""sums even-indexes elements and multiply at the last"""sum = 0if len(array) == 0:return 0else:for i in range(len(array)):if i % 2 == 0:sum = sum + array[i]return sum * array[-1]#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':print('Example:')print(checkio([0, 1, 2, 3, 4, 5]))assert checkio([0, 1, 2, 3, 4, 5]) == 30, "(0+2+4)*5=30"assert checkio([1, 3, 5]) == 30, "(1+5)*5=30"assert checkio([6]) == 36, "(6)*6=36"assert checkio([]) == 0, "An empty array = 0"print("Coding complete? Click 'Check' to review your tests and earn cool rewards!")
大神解答
大神解答 NO.1
def checkio(array):return sum(array[i] for i in range(0, len(array), 2))*array[-1] if len(array) >0 else 0
大神解答 NO.2
def checkio(array):sum = 0#evens = array[::2]for i in array[::2]:sum += ireturn sum*array[-1] if array else 0
大神解答 NO.3
def checkio(array):return sum(array[::2]) * array[-1] if array else 0