给定一个
nums
的整数数组,返回其中包含偶数位数字的个数。
事例:
输入: nums = [12,345,2,6,7896]
输出: 2
解释:
12由两个数字组成(偶数位)
345由三个数字组成(奇数位)
2由一个数字组成(奇数位)
6由一个数字组成(奇数位)
7896由四个数字组成(偶数位)
注意⚠️:
1 <= nums.length <= 500
1 <= nums[i] <= 10^5
leetCode传送门: leetcode.com/problems/fi…
好,看完题目要求后我们开始来解题,下面说说我的思路:
1、先写出计算位数的算法
int numLength = 0;
int num = 1234567;
do {
num = num / 10;
numLength++;
}while (num != 0);
output:7
注意:这里一定要用do-while语法,防止循环一开始个位数0参与不到运算
2、有了第一步的算法我们就可以对nums
中的数字进行计算位数,我们可以用2对计算出来的位数进行取模,如果等于0就说明是偶数,接下来就可以对evenCount
进行累加操作了。
解题如下:
class Solution {
public int findNumbers(int[] nums) {
int evenCount = 0;
for (int num : nums) {
int numLength = 0;
do {
num = num / 10 ;
numLength++;
}while (num != 0);
if (numLength % 2 == 0){
evenCount ++;
}
}
return evenCount;
}
}
3、放到leetcode编辑器执行下,success!!