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] <= 10^5
題解1:
題目給出了數字大小的範圍1~100000,位數爲偶數的情況有:
·當十萬位不爲0時,計數加一;(100000)
·當十萬位和萬位爲0,千位不爲0時計數加一;(001000)
·當前面全爲0,十位不爲0時,計數加一。(000010)
public class Solution2 {
public static int findNumbers(int[] nums) {
//統計位數爲偶數的數字個數
int count = 0;
//該循環用於判斷數字位數是否爲偶數
for(int i = 0;i<nums.length;i++){
int n = nums[i];
int shiwan = n/100000;
int wan = n/10000;
int qian = n/1000;
int bai = n/100;
int shi = n/10;
if(shiwan!=0){
count++;
}else if(wan!=0){
}else if(qian!=0){
count++;
}else if(bai!=0){
}else if(shi!=0){
count++;
}
}
//返回個數
return count;
}
提交結果1:
題解2:
將數轉換成字符串類型,判斷長度,這樣代碼要簡單一些
class Solution {
public int findNumbers(int[] nums) {
//統計位數爲偶數的數字個數
int count = 0;
for (int num : nums)
//判斷轉換成的字符串長度是否爲偶數,是計數就加1
count += String.valueOf(num).length() % 2 == 0 ? 1 : 0;
return count;
}
}