"""
设计:Python程序设计
作者:初学者
日期:2022年 03月 24日
"""
# 例96 合法数组
# 1.问题描述
# 如果数组中只包含1个出现了奇数次的数,那么数组合法,否则数组不合法。输入一个只包含正整数的数组a,判断该数组是否合法,
# 如果合法返回出现奇数次的数,否则返回-1.
# 2.问题示例
# 输入a=[1,1,2,2,3,4,4,5,5],输出3,因为该数组只有3出现了奇数次,数组合法,返回3。
# 输入a=[1,1,2,2,3,4,4,5],输出-1,因为该数组中3和5都出现了奇数次,因此数组不合法,返回-1.
# 3.代码实现
class Solution:
# 参数a:待查数组
# 返回值:数值,代表出现奇数次的值或者数组不合法
def investigation_array(self, a):
global ans
count = {}
for i in a:
if i in count:
count[i] = count[i] + 1
else:
count[i] = 1
is_has = False
for key in count:
if count[key] % 2 == 1:
if is_has:
return -1
else:
is_has = True
ans = key
if is_has:
return ans
return -1
if __name__ == '__main__':
s = Solution()
a = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
print('输入数组:', a)
ans = s.investigation_array(a)
print('数组奇数个数的值:' if ans != -1 else "数组不合法", ans)
判断合法数组
于 2022-03-24 20:05:52 首次发布