Skip to content

Latest commit

 

History

History
 
 

1295.Find Numbers with Even Number of Digits

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

English Version

题目描述

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

 

示例 1:

输入:nums = [12,345,2,6,7896]
输出:2
解释:
12 是 2 位数字(位数为偶数) 
345 是 3 位数字(位数为奇数)  
2 是 1 位数字(位数为奇数) 
6 是 1 位数字 位数为奇数) 
7896 是 4 位数字(位数为偶数)  
因此只有 12 和 7896 是位数为偶数的数字

示例 2:

输入:nums = [555,901,482,1771]
输出:1 
解释: 
只有 1771 是位数为偶数的数字。

 

提示:

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

解法

方法一:枚举

枚举数组 nums 中的每个元素,将其转换为字符串,判断字符串长度是否为偶数,是则答案加一。

时间复杂度 $O(n \times \log_{10} m)$,空间复杂度 $O(\log_{10} m)$,其中 $n$$m$ 分别为数组 nums 的长度以及数组 nums 中的最大元素。

class Solution:
    def findNumbers(self, nums: List[int]) -> int:
        return sum(len(str(v)) % 2 == 0 for v in nums)
class Solution {
    public int findNumbers(int[] nums) {
        int ans = 0;
        for (int v : nums) {
            if (String.valueOf(v).length() % 2 == 0) {
                ++ans;
            }
        }
        return ans;
    }
}
class Solution {
public:
    int findNumbers(vector<int>& nums) {
        int ans = 0;
        for (int& v : nums) {
            ans += to_string(v).size() % 2 == 0;
        }
        return ans;
    }
};
func findNumbers(nums []int) (ans int) {
	for _, v := range nums {
		if len(strconv.Itoa(v))%2 == 0 {
			ans++
		}
	}
	return
}
/**
 * @param {number[]} nums
 * @return {number}
 */
var findNumbers = function (nums) {
    let ans = 0;
    for (const v of nums) {
        ans += String(v).length % 2 == 0;
    }
    return ans;
};