1295. 统计位数为偶数的数字
C++
Python
- 核心思路就是把数字转换成字符串,逐个判断长度
- C++使用to_string()函数转换为string类型,即可用size()求长度
- Python使用str()函数转成字符串,使用len()求长度
- Python的代码中
1 for num in nums if len(str(num)) % 2 == 0
得到的是一个列表,使用的技巧是列表表达式,遍历列表,对于符合条件的元素,按照最前面的变换,添加到列表中,所以最后列表是[1, 1],sum求和得到2。 - Python代码还可以写成
return sum(not len(str(each)) % 2 for each in nums)
这个意思是说,对于nums列表中的每一个,都得到一个值,这个值首先是0或者1,代表位数是偶数位和奇数位,not
把所有的0和1,转化为True和False,不仅真值变了,而且类型发生了改变。
在python中,可以对布尔值进行加减法运算。
True会被看做 1 , False会被看做 0 :
- sum对每一项求和True为1,False为0,Bingo!成功了。这个方法蛮有趣的诶!