判断合法数组

"""
设计: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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洪荒宇宙py

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值