LeetCode 1295. 统计位数为偶数的数字

给你一个整数数组 nums,请你返回其中位数为 偶数 的数字的个数。

输入数据范围:
1 <= nums.length <= 500
1 <= nums[i] <= 10^5

解1:直接法:

class Solution {
public:
    bool countDigits(int num) {
        int count = 0;
        while (num) {
            num /= 10;
            ++count;
        }
        return !(count & 1);
    }

    int findNumbers(vector<int>& nums) {
        int res = 0;
        for (int num : nums) {
            res += countDigits(num);
        }
        return res;
    }
};

解2:利用数据范围:

class Solution {
public:
    int findNumbers(vector<int>& nums) {
        int res = 0;
        for (int num : nums) {
            if (num <= 99 && num >= 10 || num >=1000 && num <= 9999 || num == 100000) {
                ++res;
            }
        }
        return res;
    }
};

解3:使用to_string函数:

class Solution {
public:
    int findNumbers(vector<int>& nums) {
        int res = 0;
        for (int num : nums) {
            if (!(to_string(num).size() & 1)) {
                ++res;
            }
        }
        return res;
    }
};
posted @ 2020-06-14 00:56  epiphanyy  阅读(17)  评论(0)    收藏  举报  来源