Skip to content

Commit 652d1b2

Browse files
committed
feat: add solutions to lc problems
1 parent 205b9e2 commit 652d1b2

File tree

21 files changed

+888
-18
lines changed

21 files changed

+888
-18
lines changed

solution/2800-2899/2843.Count Symmetric Integers/README.md

+105-3
Original file line numberDiff line numberDiff line change
@@ -49,27 +49,129 @@
4949
<!-- 这里可写当前语言的特殊实现逻辑 -->
5050

5151
```python
52-
52+
class Solution:
53+
def countSymmetricIntegers(self, low: int, high: int) -> int:
54+
def f(x: int) -> bool:
55+
s = str(x)
56+
if len(s) & 1:
57+
return False
58+
n = len(s) // 2
59+
return sum(map(int, s[:n])) == sum(map(int, s[n:]))
60+
61+
return sum(f(x) for x in range(low, high + 1))
5362
```
5463

5564
### **Java**
5665

5766
<!-- 这里可写当前语言的特殊实现逻辑 -->
5867

5968
```java
60-
69+
class Solution {
70+
public int countSymmetricIntegers(int low, int high) {
71+
int ans = 0;
72+
for (int x = low; x <= high; ++x) {
73+
ans += f(x);
74+
}
75+
return ans;
76+
}
77+
78+
private int f(int x) {
79+
String s = "" + x;
80+
int n = s.length();
81+
if (n % 2 == 1) {
82+
return 0;
83+
}
84+
int a = 0, b = 0;
85+
for (int i = 0; i < n / 2; ++i) {
86+
a += s.charAt(i) - '0';
87+
}
88+
for (int i = n / 2; i < n; ++i) {
89+
b += s.charAt(i) - '0';
90+
}
91+
return a == b ? 1 : 0;
92+
}
93+
}
6194
```
6295

6396
### **C++**
6497

6598
```cpp
66-
99+
class Solution {
100+
public:
101+
int countSymmetricIntegers(int low, int high) {
102+
int ans = 0;
103+
auto f = [](int x) {
104+
string s = to_string(x);
105+
int n = s.size();
106+
if (n & 1) {
107+
return 0;
108+
}
109+
int a = 0, b = 0;
110+
for (int i = 0; i < n / 2; ++i) {
111+
a += s[i] - '0';
112+
b += s[n / 2 + i] - '0';
113+
}
114+
return a == b ? 1 : 0;
115+
};
116+
for (int x = low; x <= high; ++x) {
117+
ans += f(x);
118+
}
119+
return ans;
120+
}
121+
};
67122
```
68123
69124
### **Go**
70125
71126
```go
127+
func countSymmetricIntegers(low int, high int) (ans int) {
128+
f := func(x int) int {
129+
s := strconv.Itoa(x)
130+
n := len(s)
131+
if n&1 == 1 {
132+
return 0
133+
}
134+
a, b := 0, 0
135+
for i := 0; i < n/2; i++ {
136+
a += int(s[i] - '0')
137+
b += int(s[n/2+i] - '0')
138+
}
139+
if a == b {
140+
return 1
141+
}
142+
return 0
143+
}
144+
for x := low; x <= high; x++ {
145+
ans += f(x)
146+
}
147+
return
148+
}
149+
```
72150

151+
### **TypeScript**
152+
153+
```ts
154+
function countSymmetricIntegers(low: number, high: number): number {
155+
let ans = 0;
156+
const f = (x: number): number => {
157+
const s = x.toString();
158+
const n = s.length;
159+
if (n & 1) {
160+
return 0;
161+
}
162+
let a = 0;
163+
let b = 0;
164+
for (let i = 0; i < n >> 1; ++i) {
165+
a += Number(s[i]);
166+
b += Number(s[(n >> 1) + i]);
167+
}
168+
return a === b ? 1 : 0;
169+
};
170+
for (let x = low; x <= high; ++x) {
171+
ans += f(x);
172+
}
173+
return ans;
174+
}
73175
```
74176

75177
### **...**

solution/2800-2899/2843.Count Symmetric Integers/README_EN.md

+105-3
Original file line numberDiff line numberDiff line change
@@ -41,25 +41,127 @@
4141
### **Python3**
4242

4343
```python
44-
44+
class Solution:
45+
def countSymmetricIntegers(self, low: int, high: int) -> int:
46+
def f(x: int) -> bool:
47+
s = str(x)
48+
if len(s) & 1:
49+
return False
50+
n = len(s) // 2
51+
return sum(map(int, s[:n])) == sum(map(int, s[n:]))
52+
53+
return sum(f(x) for x in range(low, high + 1))
4554
```
4655

4756
### **Java**
4857

4958
```java
50-
59+
class Solution {
60+
public int countSymmetricIntegers(int low, int high) {
61+
int ans = 0;
62+
for (int x = low; x <= high; ++x) {
63+
ans += f(x);
64+
}
65+
return ans;
66+
}
67+
68+
private int f(int x) {
69+
String s = "" + x;
70+
int n = s.length();
71+
if (n % 2 == 1) {
72+
return 0;
73+
}
74+
int a = 0, b = 0;
75+
for (int i = 0; i < n / 2; ++i) {
76+
a += s.charAt(i) - '0';
77+
}
78+
for (int i = n / 2; i < n; ++i) {
79+
b += s.charAt(i) - '0';
80+
}
81+
return a == b ? 1 : 0;
82+
}
83+
}
5184
```
5285

5386
### **C++**
5487

5588
```cpp
56-
89+
class Solution {
90+
public:
91+
int countSymmetricIntegers(int low, int high) {
92+
int ans = 0;
93+
auto f = [](int x) {
94+
string s = to_string(x);
95+
int n = s.size();
96+
if (n & 1) {
97+
return 0;
98+
}
99+
int a = 0, b = 0;
100+
for (int i = 0; i < n / 2; ++i) {
101+
a += s[i] - '0';
102+
b += s[n / 2 + i] - '0';
103+
}
104+
return a == b ? 1 : 0;
105+
};
106+
for (int x = low; x <= high; ++x) {
107+
ans += f(x);
108+
}
109+
return ans;
110+
}
111+
};
57112
```
58113
59114
### **Go**
60115
61116
```go
117+
func countSymmetricIntegers(low int, high int) (ans int) {
118+
f := func(x int) int {
119+
s := strconv.Itoa(x)
120+
n := len(s)
121+
if n&1 == 1 {
122+
return 0
123+
}
124+
a, b := 0, 0
125+
for i := 0; i < n/2; i++ {
126+
a += int(s[i] - '0')
127+
b += int(s[n/2+i] - '0')
128+
}
129+
if a == b {
130+
return 1
131+
}
132+
return 0
133+
}
134+
for x := low; x <= high; x++ {
135+
ans += f(x)
136+
}
137+
return
138+
}
139+
```
62140

141+
### **TypeScript**
142+
143+
```ts
144+
function countSymmetricIntegers(low: number, high: number): number {
145+
let ans = 0;
146+
const f = (x: number): number => {
147+
const s = x.toString();
148+
const n = s.length;
149+
if (n & 1) {
150+
return 0;
151+
}
152+
let a = 0;
153+
let b = 0;
154+
for (let i = 0; i < n >> 1; ++i) {
155+
a += Number(s[i]);
156+
b += Number(s[(n >> 1) + i]);
157+
}
158+
return a === b ? 1 : 0;
159+
};
160+
for (let x = low; x <= high; ++x) {
161+
ans += f(x);
162+
}
163+
return ans;
164+
}
63165
```
64166

65167
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
class Solution {
2+
public:
3+
int countSymmetricIntegers(int low, int high) {
4+
int ans = 0;
5+
auto f = [](int x) {
6+
string s = to_string(x);
7+
int n = s.size();
8+
if (n & 1) {
9+
return 0;
10+
}
11+
int a = 0, b = 0;
12+
for (int i = 0; i < n / 2; ++i) {
13+
a += s[i] - '0';
14+
b += s[n / 2 + i] - '0';
15+
}
16+
return a == b ? 1 : 0;
17+
};
18+
for (int x = low; x <= high; ++x) {
19+
ans += f(x);
20+
}
21+
return ans;
22+
}
23+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
func countSymmetricIntegers(low int, high int) (ans int) {
2+
f := func(x int) int {
3+
s := strconv.Itoa(x)
4+
n := len(s)
5+
if n&1 == 1 {
6+
return 0
7+
}
8+
a, b := 0, 0
9+
for i := 0; i < n/2; i++ {
10+
a += int(s[i] - '0')
11+
b += int(s[n/2+i] - '0')
12+
}
13+
if a == b {
14+
return 1
15+
}
16+
return 0
17+
}
18+
for x := low; x <= high; x++ {
19+
ans += f(x)
20+
}
21+
return
22+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
class Solution {
2+
public int countSymmetricIntegers(int low, int high) {
3+
int ans = 0;
4+
for (int x = low; x <= high; ++x) {
5+
ans += f(x);
6+
}
7+
return ans;
8+
}
9+
10+
private int f(int x) {
11+
String s = "" + x;
12+
int n = s.length();
13+
if (n % 2 == 1) {
14+
return 0;
15+
}
16+
int a = 0, b = 0;
17+
for (int i = 0; i < n / 2; ++i) {
18+
a += s.charAt(i) - '0';
19+
}
20+
for (int i = n / 2; i < n; ++i) {
21+
b += s.charAt(i) - '0';
22+
}
23+
return a == b ? 1 : 0;
24+
}
25+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class Solution:
2+
def countSymmetricIntegers(self, low: int, high: int) -> int:
3+
def f(x: int) -> bool:
4+
s = str(x)
5+
if len(s) & 1:
6+
return False
7+
n = len(s) // 2
8+
return sum(map(int, s[:n])) == sum(map(int, s[n:]))
9+
10+
return sum(f(x) for x in range(low, high + 1))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
function countSymmetricIntegers(low: number, high: number): number {
2+
let ans = 0;
3+
const f = (x: number): number => {
4+
const s = x.toString();
5+
const n = s.length;
6+
if (n & 1) {
7+
return 0;
8+
}
9+
let a = 0;
10+
let b = 0;
11+
for (let i = 0; i < n >> 1; ++i) {
12+
a += Number(s[i]);
13+
b += Number(s[(n >> 1) + i]);
14+
}
15+
return a === b ? 1 : 0;
16+
};
17+
for (let x = low; x <= high; ++x) {
18+
ans += f(x);
19+
}
20+
return ans;
21+
}

0 commit comments

Comments
 (0)