标签:problems 相关 count sys 判断字符串 循环 tps 技术 -o
题目来源于力扣(LeetCode)
题目相关标签:数组
提示:
1 <= nums.length <= 500
1 <= nums[i] <= 10^5
利用题目给出的提示:1 <= nums[i] <= 10 ^ 5
其中 [10, 99],[1000, 9999],100000 中的数,其位数为偶数
遍历 nums 数组,对于每个元素转换成字符串操作
判断字符串长度是否为偶数,即被 2 整除
遍历 nums 数组,对于每个元素都循环除 10,计算得到每个元素的位数
位数被 2 整除时,结果加 1
public static int findNumbers2(int[] nums) {
int count = 0;
for (int i : nums) {
if (i >= 10 && i < 100) {
// 10 ~ 99 的数字位数为2位
count++;
} else if (i >= 1000 && i < 10000) {
// 1000 ~ 9999 的数字位数为4位
count++;
} else if (i == 100000) {
// 100000 的数字位数为6位
count++;
}
}
return count;
}
public static int findNumbers(int[] nums) {
int ans = 0;
for (int num : nums) {
String str = String.valueOf(num);
if (str.length() % 2 == 0) {
ans ++;
}
}
return ans;
}
public static int findNumbers(int[] nums) {
int ans = 0;
for (int i : nums) {
int k = 0;
// 循环计算数字 i 的位数
while (i != 0) {
i /= 10;
k++;
}
// 位数为偶数时,count + 1
if ((k & 1) == 0) {
ans += 1;
}
}
return ans;
}
public static void main(String[] args) {
int[] nums = {12, 345, 2, 6, 7896}; // output: 2
// int[] nums = {555, 901, 482, 1771}; // output: 1
int result = findNumbers(nums);
System.out.println(result);
}
标签:problems 相关 count sys 判断字符串 循环 tps 技术 -o
原文地址:https://www.cnblogs.com/zhiyin1209/p/13170716.html