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 函数先将其转化为字符串类型,然后就可以设置条件来统计为偶数位的个数了。
代码示例:
class Solution:def findNumbers(self, nums: List[int]) -> int:num = 0for i in nums:if len(str(i))%2 == 0:num += 1return num
知识点补充:
统计位数为偶数的数字(数学 + 字符串)
给你一个整数数组 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 <= 5001 <= nums[i] <= 10^5
思路:
水题,直接转字符串判断数字长度即可。
时间复杂度:O(NK),N是nums长度,K是max(nums)长度
空间复杂度:O(K)
class Solution(object): def findNumbers(self, nums): ''' :type nums: List[int] :rtype: int ''' res = 0 for num in nums: if len(str(num)) % 2 == 0: res += 1 return res
总结
到此这篇关于Python 统计位数为偶数的数字的文章就介绍到这了,更多相关python 统计偶数内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!
相关文章:
1. windows-7 - win7下使用cmder,如何设置vim的tab为4个空格?2. Java中的多人游戏。将客户端(玩家)连接到其他客户端创建的游戏3. android - MVP模式 包的结构4. android - 重写onTouch方法,如何通过判断自定义view的某个属性值来返回不同的返回值5. java - socket类服务端如何防止被ddos攻击?6. web - nginx location 搜索算法问题!?7. 隐秘的“脚本错误”。在Chrome和Firefox中以Javascript报告8. python - 有一个函数名(字符串形式),如何能够调用这个函数?9. Java。如何将文本追加到file.txt的顶部10. MySQL的SELECT...FOR UPDATE究竟起什么作用

网公网安备