【Java】力扣 - 刷题笔记 - 1295

【Java】力扣 - 刷题笔记 - 1295

【Java】力扣 - 刷题笔记 - 1295

每日一道题,提升一点点

题目介绍

1295. 统计位数为偶数的数字
给你一个整数数组 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] <= 105

解题思路

  • 1.题目分析
    我们先写一个方法判断一个数字位数的奇偶性
public static boolean isEven(int num) {
	// 初始化数值位数为1位
	int digit = 1;
	// 求数值的位数
	for (int i = 1; i <= 5; i++) {
		// 如果num/10大于0,则位数加一,且num=num/10
		if(num / 10 > 0) {
			digit++;
		} else {
			break;
		}
		num = num / 10;
	}
	// 判断位数的奇偶性,偶数返回true,否则返回false
	if (digit % 2 == 0) {
		return true;
	} else {
		return false;
	}
}

然后遍历nums数组,判断每个值的奇偶性,输出结果即可

class Solution {
	public int findNumbers(int[] nums) {
		// 初始化数组中位数为偶数的个数为0
		int res = 0;
		// 遍历数组,遇到位数为偶数时res加1
		for (int i = 0; i < nums.length; i++) {
			if (isEven(nums[i])) {
				res++;
			}
		}
		return res;
	}
	// 判断数字位数是否偶数,是则返回true
	public static boolean isEven(int num) {
		int digit = 1;
		for (int i = 1; i <= 5; i++) {
			if(num / 10 > 0) {
				digit++;
			} else {
				break;
			}
			num = num / 10;
		}
		if (digit % 2 == 0) {
			return true;
		} else {
			return false;
		}
	}
}
  • 2.提交结果
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_35132089/article/details/108104295