统计位数为偶数的数字

325 阅读1分钟

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情

一、题目描述

  • 给你一个整数数组 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] <= 100000

二、思路分析:

  • 统计位数为偶数的数字个数
    • 首先遍历数组,将数组内的每一项数组用toString方法转化成字符串
    • 然后再利用字符串的length属性获得长度,即数字的位数
    • 判断length是否是2的倍数
      • 如果是,就说明当前项的数字是偶数位的数字,定义好的统计变量加1
      • 如果不是,就不统计次数
    • 最后返回统计次数的变量

三、AC 代码:

function findNumbers(nums: number[]): number {
    let times = 0;
    for(let i = 0; i < nums.length; i++){
        if(nums[i].toString().length % 2 ===  0){
            times++
        }
    }
    return times
};

四、总结:

  • 题目简单难度,也可以用其他方式解题
  • 更多解题方式,移步题解区

image.png