一、题目
演示示例:
二、测试代码
//方法一 暴力求解每个数字位数
class Solution {
public int findNumbers(int[] nums) {
int count=0,a=0,b=0;
for(int i=0;i<nums.length;i++)
{
while(nums[i]>0)//计算数组中的每一个数的位数
{
a=nums[i]%10;
count++;
nums[i]=nums[i]/10;
}
if(count%2==0)//判断位数为偶数时,计数器b加一
{
b++;
}
count=0;//切记此处将count置零,否则会继续累加导致报错
}
return b;
}
}
//方法二 将int转化String
class Solution {
public int findNumbers(int[] nums) {
int a=0;
for(int i:nums)
{
if(String.valueOf(i).length()%2==0)//利用String.valueOf()将整型转换为字符串类型,每个数字字符串长度为偶数时,将计数器a加一
{
a++;
}
}
return a;
}
}
三、运行情况
方法一:
方法二:
PS:本题方法一解题思路与第1281题整数的各位积和之差相同
LeetCode刷题进阶之整数的各位积和之差(1281)