每次思考都是一次进步
1、暴力解,用循环去求每个数有多少位,得到的位的个数如果对2求余为0则记录一个。
class Solution {
public:
int findNumbers(vector<int>& nums) {
int thesize=nums.size();
int sum=0,count;
for(int i=0;i<thesize;++i)
{
count=0;
while(nums[i]!=0)
{
nums[i]/=10;
++count;
}
if(count%2==0) ++sum;
}
return sum;
}
};
2、由于他这里数据有限,可以看出位数为偶数的只有两位,四位和100000,那么则可以设立区间用if直接判断是否为偶数位。
class Solution {
public:
int findNumbers(vector<int>& nums) {
int thesize=nums.size();
int count=0;
for(int i=0;i<thesize;++i)
{
if(nums[i]<=9999&&nums[i]>=1000) ++count;
else if(nums[i]>=10&&nums[i]<=99) ++count;
else if(nums[i]==100000) ++count;
}
return count;
}
};