1295. Find Numbers with Even Number of Digits
1295. Find Numbers with Even Number of Digits
题目
Given an array nums of integers, return how many of them contain an even number of digits.
Example 1:
1 | Input: nums = [12,345,2,6,7896] |
Example 2:
1 | Input: nums = [555,901,482,1771] |
Constraints:
1 <= nums.length <= 5001 <= nums[i] <= 10^5
解题
思路:题目的关键点在于如何计数一个整数的位数。Hint给出的方法是:Divide the number by 10 again and again to get the number of digits。我想到的是把整数转化为string类型,因为python种字符串类型是可迭代的,可以直接用len()计数位数。
我的代码:
1 | class Solution(object): |
别人更简洁的代码:
1 | class Solution(object): |
但是虽然第二种代码更简洁,但似乎时空复杂度是差不多的。
总结
sum函数
1
sum(iterable[, start])
- iterable – 可迭代对象,如:列表、元组、集合。
- start – 指定相加的参数,如果没有设置这个值,默认为0。
经常看见一些简单的代码是用了sum函数求和生成器。
此处遍历了nums,判断有几个元素的len(str(n)) % 2 == 0结果为True