算法leetcode1295. 统计位数为偶数的数字(多语言实现)
Posted 二当家的白帽子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法leetcode1295. 统计位数为偶数的数字(多语言实现)相关的知识,希望对你有一定的参考价值。
文章目录
- 1295. 统计位数为偶数的数字:
- 样例 1:
- 样例 2:
- 提示:
- 分析
- 题解
- 原题传送门:https://leetcode.cn/problems/find-numbers-with-even-number-of-digits/
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
分析
- 面对这道算法题目,二当家的陷入了沉思。
- 需要遍历数组是无疑的。
- 中规中矩的方式可以是将数字转为字符串然后判断长度是否为偶数。但是这样需要创建新的字符串出来。
- 转为字符串是为了快速判断位数,以10为底取对数,有高效的数学函数也是不错的选择。
- 当然根据提示,我们知道每个数字的取值范围,也可以不去计算数字的位数,直接判断取值。
题解
rust
impl Solution
pub fn find_numbers(nums: Vec<i32>) -> i32
nums.iter().filter(|&&num|
(num >= 10 && num <= 99)
|| (num >= 1000 && num <= 9999)
|| num == 100000
).count() as i32
go
func findNumbers(nums []int) int
ans := 0
for _, num := range nums
if (num >= 10 && num <= 99) || (num >= 1000 && num <= 9999) || num == 100000
ans++
return ans
typescript
function findNumbers(nums: number[]): number
return nums.filter(num => (num >= 10 && num <= 99)
|| (num >= 1000 && num <= 9999)
|| num == 100000).length;
;
python
class Solution:
def findNumbers(self, nums: List[int]) -> int:
return sum(1 for num in nums if 10 <= num <= 99 or 1000 <= num <= 9999 or num == 100000)
c
int findNumbers(int* nums, int numsSize)
int ans = 0;
for (int i = 0; i < numsSize; ++i)
if ((nums[i] >= 10 && nums[i] <= 99)
|| (nums[i] >= 1000 && nums[i] <= 9999)
|| nums[i] == 100000)
++ans;
return ans;
c++
class Solution
public:
int findNumbers(vector<int>& nums)
int ans = 0;
for (int num: nums)
if ((num >= 10 && num <= 99)
|| (num >= 1000 && num <= 9999)
|| num == 100000)
++ans;
return ans;
;
java
class Solution
public int findNumbers(int[] nums)
int ans = 0;
for (int num : nums)
if ((num >= 10 && num <= 99)
|| (num >= 1000 && num <= 9999)
|| num == 100000)
++ans;
return ans;
原题传送门:https://leetcode.cn/problems/find-numbers-with-even-number-of-digits/
非常感谢你阅读本文~
欢迎【点赞】【收藏】【评论】~
放弃不难,但坚持一定很酷~
希望我们大家都能每天进步一点点~
本文由 二当家的白帽子:https://le-yi.blog.csdn.net/ 博客原创~
以上是关于算法leetcode1295. 统计位数为偶数的数字(多语言实现)的主要内容,如果未能解决你的问题,请参考以下文章