下面是详细讲解“C/C++题解LeetCode1295统计位数为偶数的数字”的完整攻略。
题目描述
给你一个整数数组 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] <= 10^5
思路分析
题目要求统计位数为偶数的数字的个数,我们可以把数字转换成字符串,然后再计算字符串的长度即可。
具体流程如下:
-
遍历整数数组中的每一个数字;
-
把数字转换成字符串;
-
计算字符串的长度;
-
判断字符串的长度是否是偶数,是则计数器加1;
-
最后返回计数器的值。
代码实现
下面是C++的代码实现,其中用到了C++中的ostringstream库和to_string函数,可以方便地把数字转换成字符串,代码如下:
class Solution {
public:
int findNumbers(vector<int>& nums){
int res = 0;
for(int i : nums){
ostringstream ss;
ss<<i;
string s = ss.str();
if(s.length() % 2 == 0)
res ++;
}
return res;
}
};
示例说明
下面是两条示例说明:
示例1
输入:
nums = [555,901,482,1771]
输出:
1
解释:
只有1771是位数为偶数的数字。
示例2
输入:
nums = [12,345,2,6,7896]
输出:
2
解释:
12 是2位数字(位数为偶数)。
345 是3位数字(位数为奇数)。
2 是1位数字(位数为奇数)。
6 是1位数字(位数为奇数)。
7896 是4位数字(位数为偶数)。
因此只有12和7896是位数为偶数的数字。
以上就是完整的攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C/C++题解LeetCode1295统计位数为偶数的数字 - Python技术站