统计位数为偶数的数字
问题:
给你一个整数数组 nums,请你返回其中位数为 偶数 的数字的个数。
思路:
方法一:
- 写一个判断数字位数的函数
- 遍历数组,用判偶数位数函数判断
- 为真则计数加一
方法二:
遍历数组将数字转化为字符串判断
- 方法一更高效。
方法一代码
class Solution {
public:
int findNumbers(vector<int>& nums) {
auto count = 0;
for(auto& num : nums) {
if(isEven(num)) count++;
}
return count;
}
bool isEven(int& n) { // 判断位数是否为偶数
auto i = 1;
for( ; n > 0; ++i) {
n /= 10;
}
return i % 2;
}
};
方法二代码
class Solution {
public:
int findNumbers(vector<int>& nums) {
auto count = 0;
for(auto& num : nums) {
count += to_string(num).size() % 2 == 0;
}
return count;
}
};