Skip to content

Latest commit

 

History

History

1295

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

Given an array nums of integers, return how many of them contain an even number of digits.

 

Example 1:

Input: nums = [12,345,2,6,7896]
Output: 2
Explanation: 
12 contains 2 digits (even number of digits). 
345 contains 3 digits (odd number of digits). 
2 contains 1 digit (odd number of digits). 
6 contains 1 digit (odd number of digits). 
7896 contains 4 digits (even number of digits). 
Therefore only 12 and 7896 contain an even number of digits.

Example 2:

Input: nums = [555,901,482,1771]
Output: 1 
Explanation: 
Only 1771 contains an even number of digits.

 

Constraints:

  • 1 <= nums.length <= 500
  • 1 <= nums[i] <= 10^5

Related Topics:
Array

Solution 1.

// OJ: https://leetcode.com/problems/find-numbers-with-even-number-of-digits/
// Author: github.com/lzl124631x
// Time: O(N)
// Space: O(1)
class Solution {
    int getCount(int n) {
        int cnt = 0;
        while (n) {
            n /= 10;
            ++cnt;
        }
        return cnt;
    }
public:
    int findNumbers(vector<int>& nums) {
        int cnt = 0;
        for (int n : nums) {
            if (getCount(n) % 2 == 0) cnt++;
        }
        return cnt;
    }
};