Python |使用 Lambda 表达式查找出现奇数次的次数并减少函数
给定一个正整数数组。所有的数字都出现偶数次,只有一个数字出现奇数次。求 O(n)时间&常数空间中的数。
示例:
Input : [1, 2, 3, 2, 3, 1, 3]
Output : 3
这个问题我们已经有解决方案了,请参考找到出现奇数次的次数链接。我们将使用 Reduce(表达式,可迭代)方法在 python 中快速解决这个问题。
# Python program to Find the Number
# Occurring Odd Number of Times
# using Lambda expression and reduce function
from functools import reduce
def oddTimes(input):
# write lambda expression and apply
# reduce function over input list
# until single value is left
# expression reduces value of a ^ b into single value
# a starts from 0 and b from 1
# ((((((1 ^ 2)^3)^2)^3)^1)^3)
print (reduce(lambda a, b: a ^ b, input))
# Driver program
if __name__ == "__main__":
input = [1, 2, 3, 2, 3, 1, 3]
oddTimes(input)
输出:
3
版权属于:月萌API www.moonapi.com,转载请注明出处