如何利用列表推导式优化偶数位整数前后半段数字和判断算法
问题与代码优化
需求:编写算法接收任意偶数位整数输入,判断前n位数字之和是否等于后n位数字之和(n为数字长度的一半,例如输入2130返回True,输入3304返回False)。
初始代码
def ticket(num): list_num = [int(x) for x in str(num)] half_length = int(len(list_num)/2) for i in range(half_length*2): first_half = list_num[0:half_length] second_half = list_num[half_length::] if sum(first_half) == sum(second_half): return True else: return False
优化后代码
def ticket(num): list_num = [int(x) for x in str(num)] half_length = int(len(list_num)/2) return sum(list_num[0:half_length]) == sum(list_num[half_length::])
调用示例
调用ticket(1230)会返回True(前两位1+2=3,后两位3+0=3,和相等)
内容的提问来源于stack exchange,提问作者Dommy1
相关产品推荐
相关产品推荐

