Python 统计位数为偶数的数字代码详解
问题描述
给出一个整数数组nums,请返回其中位数为偶数的数字的个数。
示例1:
输入:nums=[12,345,2,6,7896]
输出:2
解释:
12是2位数字(位数为偶数)
345是3位数字(位数为奇数)
2是1位数字(位数为奇数)
6是1位数字位数为奇数)
7896是4位数字(位数为偶数)
因此只有12和7896是位数为偶数的数字
示例2:
输入:nums=[555,901,482,1771]
输出:1
解释:
只有1771是位数为偶数的数字。
解决方案
首先看到题目中所描述的位数为偶数的数字,这时就要看清楚这个位数是指几位数的位数还是第几位的位数了,然后通过观察后面给的输出样例,就可以发现是指的几位数。那么接下来就可以开始解决了。既然统计个数,首先想到的就应该是具有遍历功能的for循环了,然后再判断几位数,不妨用len函数。但是要注意的是它给的列表中的数字是数字类型,自然是没有len的,所以需要用str函数先将其转化为字符串类型,然后就可以设置条件来统计为偶数位的个数了。
代码示例:
classSolution: deffindNumbers(self,nums:List[int])->int: num=0 foriinnums: iflen(str(i))%2==0: num+=1 returnnum
知识点补充:
统计位数为偶数的数字(数学+字符串)
给你一个整数数组 nums,请你返回其中位数为 偶数 的数字的个数。
示例1:
输入:nums=[12,345,2,6,7896]
输出:2
解释:
12是2位数字(位数为偶数)
345是3位数字(位数为奇数)
2是1位数字(位数为奇数)
6是1位数字位数为奇数)
7896是4位数字(位数为偶数)
因此只有12和7896是位数为偶数的数字
示例2:
输入:nums=[555,901,482,1771]
输出:1
解释:
只有1771是位数为偶数的数字。
提示:
1<=nums.length<=500
1<=nums[i]<=10^5
思路:
水题,直接转字符串判断数字长度即可。
时间复杂度:O(NK),N是nums长度,K是max(nums)长度
空间复杂度:O(K)
classSolution(object): deffindNumbers(self,nums): """ :typenums:List[int] :rtype:int """ res=0 fornuminnums: iflen(str(num))%2==0: res+=1 returnres
总结
到此这篇关于Python统计位数为偶数的数字的文章就介绍到这了,更多相关python统计偶数内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。