第十二天(位运算)

今天完成题目:762,1604,784,1731,1725,162,389 762:二进制表示中质数个计算置位

  • 先转换成二进制,而后用字典法判断是否质数

1604:数组中出现次数超过一半的数字

  • 先转换成set,而后遍历

  • 使用count判断符合要求的数字

786:字母大小全排列

  • n个字母的全排列,则使用使用n位二进制来表示

  • isalpha()判断字母,upper()大写,lower()小写

  • map(function,iterable...) 映射函数

  • itertools.product(*iterables, repeat=1)指定重复几次迭代

    >>> from itertools import product as product
    >>> A = [1, 2, 3]
    >>> B = [100, 200, 300]
    >>> for item in product(A, B):
    ...     print(item)
    ... 
    (1, 100)
    (1, 200)
    (1, 300)
    (2, 100)
    (2, 200)
    (2, 300)
    (3, 100)
    (3, 200)
    (3, 300)

1731:主要元素

  • 跟1604类似,只不过多了种可能

1725:消失的数字

  • return int(len(nums)*(len(nums)+1)/2 - sum(nums))

  • 通过等差数列求和后减去数组中的数字之和

162:多数元素

  • 跟1609一致

389:找不同

  • 先将字符转变成数字ord()

  • 而后求和计算不同的元素

  • 再转变会字母chr()

最后更新于

这有帮助吗?