参考链接
- https://leetcode-cn.com/problems/find-numbers-with-even-number-of-digits/
题目描述
给你一个整数数组nums,请你返回其中位数为偶数的数字的个数。
解题思路
分两步,先求出数的位数,再判断位数是否为偶数。第一步可以用除10的方式统计出来,也可以转化为字符串,直接看字符串的长度;第二步可以对2取余进行判断,也可以用位运算,与1相与。
代码
朴素解法
class Solution {
public:
int findNumbers(vector<int>& nums) {
int res = 0;
for (int num : nums)
{
int len = 0;
if (!num)
{
len = 1;
}
while(num)
{
num /= 10;
len ++;
}
if (!(len & 1))
{
res ++;
}
}
return res;
}
};
转为字符串
class Solution {
public:
int findNumbers(vector<int>& nums) {
int res = 0;
for (int num : nums)
{
if (!(to_string(num).size() & 1))
{
res ++;
}
}
return res;
}
};