0
点赞
收藏
分享

微信扫一扫

位 1 的个数

南柯Taylor 2022-02-09 阅读 27
python


位 1 的个数


   CSDN 的“每日一练” (Python) 题目。

  1. 题目
  2. 代码运行效果
  3. 完整代码

题目

在这里插入图片描述


回首页

我的代码运行效果


在这里插入图片描述


回首页

我的解题代码

(如果从语句注释不能清楚作用,请评论区留言指教和探讨。🤝)
# coding: utf-8


def more(nums):
    '''查找数组中的多数元素'''
    temp, count = [], 0 #初始化计算过的元素数组和计数器。
    for i in nums: #遍历数组。
        if i not in temp: #元素未计算过,计算在数组中的总个数。
            k = nums.count(i)
        if k > count:
            count, more = k, i #记录最多的元素及该元素在数组中的总个数。
    if count > len(nums) / 2: #元素在数组中总个数多于元素个数一半,返回该元素,否则返回 None 。
        return more
    else:
        return None



nums = [], [1, 3, 4, 5, 4], [3, 2, 3], [2, 2, 1, 1, 1, 2, 2]

for i in nums:
    print(f'\n\n\n{"查找数组中的多数元素":_^32}\n\n\n{"数组:":>11}{i}\n\n{"多数元素:":>13}{more(i)}\n\n\n{"The End":_^42}\n')

原题代码“临帖”


# coding: utf-8


def more(nums):
    '''查找数组中的多数元素'''
    temp, count = [], 0 #初始化计算过的元素数组和计数器。
    for i in nums: #遍历数组。
        if i not in temp: #元素未计算过,计算在数组中的总个数。
            k = nums.count(i)
        if k > count:
            count, more = k, i #记录最多的元素及该元素在数组中的总个数。
    if count > len(nums) / 2: #元素在数组中总个数多于元素个数一半,返回该元素,否则返回 None 。
        return more
    else:
        return None



nums = [], [1, 3, 4, 5, 4], [3, 2, 3], [2, 2, 1, 1, 1, 2, 2]

for i in nums:
    print(f'\n\n\n{"查找数组中的多数元素":_^32}\n\n\n{"数组:":>11}{i}\n\n{"多数元素:":>13}{more(i)}\n\n\n{"The End":_^42}\n')

我的解题代码

# coding: utf-8



#原题答案(错误)
def majorityElement(nums):
    n = len(nums)
    if n == 1:
        return nums[0]
    dic = {}
    for num in nums:
        if num in dic.keys():
            dic[num] += 1
            print(dic[num])
            if dic[num] > n / 2:
                return nums[num]
            else:
                dic[num] = 1



def count_1(s):
    '''位 1 的个数'''
    
    return s.count('1')

ss = ('00000000000000000000000000001011', 
'00000000000000000000000010000000', 
'11111111111111111111111111111101'
      )
for i in ss:
    print(f'\n\n\n{"位 1 的个数(原题代码)":_^34}\n\n\n{"整数:":>5}{i}\n\n{" 1 的个数:":>18}{majorityElement(list(i))}\n\n\n{"The End":_^42}\n')
input(f'Any key continue...'.center(42))



for i in ss:
    print(f'\n\n\n{"位 1 的个数":_^38}\n\n\n{"整数:":>5}{i}\n\n{" 1 的个数:":>18}{count_1(i)}\n\n\n{"The End":_^42}\n')
input(f'Any key continue...'.center(42))

回首页

我的HOT博:

    • New:“快乐数”判断(当前阅读1170)
    • New:罗马数字转换器(用罗马数字构造元素的值取模实现)(当前阅读1223)
    • 罗马数字转换器|罗马数字生成器(当前阅读1481)
    • 让QQ群昵称色变的神奇代码(当前阅读2745)
    • 斐波那契数列(递归实现和for实现)(当前阅读1960)
    • 排序数组中查找元素的重复起止位置(当前阅读1205)
    • 柱状图中最大矩形(当前阅读1608)
    • 电话拨号键盘的字母组合(当前阅读1227)
    • 密码强度检测器(当前阅读1671)
    • 求列表平衡点(当前阅读1705)
    • 字符串统计(当前阅读2201)
    • 尼姆游戏(代码优化版)(当前阅读826)
    • Hot:尼姆游戏(聪明版首发)(当前阅读3248)
    • 推荐条件 点阅破千

      参考文章:


      上一篇: 练习:移除元素

      下一篇:


      好文力荐:靠谱程序员的好习惯


      回首页

      老齐漫画头像

      精品文章:

      • OPP三大特性:封装中的property
      • 通过内置对象理解python'
      • 正则表达式
      • python中“*”的作用
      • Python 完全自学手册
      • 海象运算符
      • Python中的 `!=`与`is not`不同
      • 学习编程的正确方法

      CSDN实用技巧博文:

      • 8个好用到爆的Python实用技巧
      • python忽略警告

    举报

    相关推荐

    0 条评论