Skip to content

Commit d7fdf6f

Browse files
committed
feat: add solutions to lc problem: No.1295
No.1295.Find Numbers with Even Number of Digits
1 parent 8eaf66b commit d7fdf6f

File tree

7 files changed

+93
-49
lines changed

7 files changed

+93
-49
lines changed

solution/1200-1299/1295.Find Numbers with Even Number of Digits/README.md

+36-17
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,11 @@
4444

4545
<!-- 这里可写通用的实现逻辑 -->
4646

47-
首先将数组元素转换为字符串,判断字符串长度是否为偶数即可。
47+
**方法一:枚举**
48+
49+
枚举数组 `nums` 中的每个元素,将其转换为字符串,判断字符串长度是否为偶数,是则答案加一。
50+
51+
时间复杂度 $O(n \times \log_{10} m)$,空间复杂度 $O(\log_{10} m)$,其中 $n$ 和 $m$ 分别为数组 `nums` 的长度以及数组 `nums` 中的最大元素。
4852

4953
<!-- tabs:start -->
5054

@@ -55,7 +59,7 @@
5559
```python
5660
class Solution:
5761
def findNumbers(self, nums: List[int]) -> int:
58-
return sum(1 for num in nums if (len(str(num)) & 1) == 0)
62+
return sum(len(str(v)) % 2 == 0 for v in nums)
5963
```
6064

6165
### **Java**
@@ -65,13 +69,13 @@ class Solution:
6569
```java
6670
class Solution {
6771
public int findNumbers(int[] nums) {
68-
int s = 0;
69-
for (int num : nums) {
70-
if ((String.valueOf(num).length() & 1) == 0) {
71-
++s;
72+
int ans = 0;
73+
for (int v : nums) {
74+
if (String.valueOf(v).length() % 2 == 0) {
75+
++ans;
7276
}
7377
}
74-
return s;
78+
return ans;
7579
}
7680
}
7781
```
@@ -82,29 +86,44 @@ class Solution {
8286
class Solution {
8387
public:
8488
int findNumbers(vector<int>& nums) {
85-
int s = 0;
86-
for (int num : nums) {
87-
s += (to_string(num).size() & 1) == 0;
89+
int ans = 0;
90+
for (int& v : nums) {
91+
ans += to_string(v).size() % 2 == 0;
8892
}
89-
return s;
93+
return ans;
9094
}
9195
};
9296
```
9397
9498
### **Go**
9599
96100
```go
97-
func findNumbers(nums []int) int {
98-
s := 0
99-
for _, num := range nums {
100-
if (len(strconv.Itoa(num)) & 1) == 0 {
101-
s++
101+
func findNumbers(nums []int) (ans int) {
102+
for _, v := range nums {
103+
if len(strconv.Itoa(v))%2 == 0 {
104+
ans++
102105
}
103106
}
104-
return s
107+
return
105108
}
106109
```
107110

111+
### **JavaScript**
112+
113+
```js
114+
/**
115+
* @param {number[]} nums
116+
* @return {number}
117+
*/
118+
var findNumbers = function (nums) {
119+
let ans = 0;
120+
for (const v of nums) {
121+
ans += String(v).length % 2 == 0;
122+
}
123+
return ans;
124+
};
125+
```
126+
108127
### **...**
109128

110129
```

solution/1200-1299/1295.Find Numbers with Even Number of Digits/README_EN.md

+31-16
Original file line numberDiff line numberDiff line change
@@ -47,21 +47,21 @@ Only 1771 contains an even number of digits.
4747
```python
4848
class Solution:
4949
def findNumbers(self, nums: List[int]) -> int:
50-
return sum(1 for num in nums if (len(str(num)) & 1) == 0)
50+
return sum(len(str(v)) % 2 == 0 for v in nums)
5151
```
5252

5353
### **Java**
5454

5555
```java
5656
class Solution {
5757
public int findNumbers(int[] nums) {
58-
int s = 0;
59-
for (int num : nums) {
60-
if ((String.valueOf(num).length() & 1) == 0) {
61-
++s;
58+
int ans = 0;
59+
for (int v : nums) {
60+
if (String.valueOf(v).length() % 2 == 0) {
61+
++ans;
6262
}
6363
}
64-
return s;
64+
return ans;
6565
}
6666
}
6767
```
@@ -72,29 +72,44 @@ class Solution {
7272
class Solution {
7373
public:
7474
int findNumbers(vector<int>& nums) {
75-
int s = 0;
76-
for (int num : nums) {
77-
s += (to_string(num).size() & 1) == 0;
75+
int ans = 0;
76+
for (int& v : nums) {
77+
ans += to_string(v).size() % 2 == 0;
7878
}
79-
return s;
79+
return ans;
8080
}
8181
};
8282
```
8383
8484
### **Go**
8585
8686
```go
87-
func findNumbers(nums []int) int {
88-
s := 0
89-
for _, num := range nums {
90-
if (len(strconv.Itoa(num)) & 1) == 0 {
91-
s++
87+
func findNumbers(nums []int) (ans int) {
88+
for _, v := range nums {
89+
if len(strconv.Itoa(v))%2 == 0 {
90+
ans++
9291
}
9392
}
94-
return s
93+
return
9594
}
9695
```
9796

97+
### **JavaScript**
98+
99+
```js
100+
/**
101+
* @param {number[]} nums
102+
* @return {number}
103+
*/
104+
var findNumbers = function (nums) {
105+
let ans = 0;
106+
for (const v of nums) {
107+
ans += String(v).length % 2 == 0;
108+
}
109+
return ans;
110+
};
111+
```
112+
98113
### **...**
99114

100115
```
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
class Solution {
22
public:
33
int findNumbers(vector<int>& nums) {
4-
int s = 0;
5-
for (int num : nums) {
6-
s += (to_string(num).size() & 1) == 0;
4+
int ans = 0;
5+
for (int& v : nums) {
6+
ans += to_string(v).size() % 2 == 0;
77
}
8-
return s;
8+
return ans;
99
}
1010
};
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
func findNumbers(nums []int) int {
2-
s := 0
3-
for _, num := range nums {
4-
if (len(strconv.Itoa(num)) & 1) == 0 {
5-
s++
1+
func findNumbers(nums []int) (ans int) {
2+
for _, v := range nums {
3+
if len(strconv.Itoa(v))%2 == 0 {
4+
ans++
65
}
76
}
8-
return s
7+
return
98
}
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
class Solution {
22
public int findNumbers(int[] nums) {
3-
int s = 0;
4-
for (int num : nums) {
5-
if ((String.valueOf(num).length() & 1) == 0) {
6-
++s;
3+
int ans = 0;
4+
for (int v : nums) {
5+
if (String.valueOf(v).length() % 2 == 0) {
6+
++ans;
77
}
88
}
9-
return s;
9+
return ans;
1010
}
1111
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number}
4+
*/
5+
var findNumbers = function (nums) {
6+
let ans = 0;
7+
for (const v of nums) {
8+
ans += String(v).length % 2 == 0;
9+
}
10+
return ans;
11+
};
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
class Solution:
22
def findNumbers(self, nums: List[int]) -> int:
3-
return sum(1 for num in nums if (len(str(num)) & 1) == 0)
3+
return sum(len(str(v)) % 2 == 0 for v in nums)

0 commit comments

Comments
 (0)