Skip to content

Commit e470171

Browse files
authored
feat: add solutions to lc problems: No.2269,2270 (doocs#818)
* No.2269.Find the K-Beauty of a Number * No.2270.Number of Ways to Split Array
1 parent 93f08f5 commit e470171

File tree

8 files changed

+141
-8
lines changed

8 files changed

+141
-8
lines changed

solution/2200-2299/2269.Find the K-Beauty of a Number/README.md

+22-2
Original file line numberDiff line numberDiff line change
@@ -71,15 +71,35 @@
7171
<!-- 这里可写当前语言的特殊实现逻辑 -->
7272

7373
```python
74-
74+
class Solution:
75+
def divisorSubstrings(self, num: int, k: int) -> int:
76+
cnt = 0
77+
s = str(num)
78+
for i in range(len(s) - k + 1):
79+
tmp = int(s[i: i + k])
80+
if tmp != 0 and num % tmp == 0:
81+
cnt += 1
82+
return cnt
7583
```
7684

7785
### **Java**
7886

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

8189
```java
82-
90+
class Solution {
91+
public int divisorSubstrings(int num, int k) {
92+
int cnt = 0;
93+
String s = String.valueOf(num);
94+
for (int i = 0; i <= s.length() - k; i++) {
95+
int tmp = Integer.parseInt(s.substring(i, i + k));
96+
if (tmp != 0 && num % tmp == 0) {
97+
cnt++;
98+
}
99+
}
100+
return cnt;
101+
}
102+
}
83103
```
84104

85105
### **TypeScript**

solution/2200-2299/2269.Find the K-Beauty of a Number/README_EN.md

+22-2
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,33 @@ Therefore, the k-beauty is 2.
6363
### **Python3**
6464

6565
```python
66-
66+
class Solution:
67+
def divisorSubstrings(self, num: int, k: int) -> int:
68+
cnt = 0
69+
s = str(num)
70+
for i in range(len(s) - k + 1):
71+
tmp = int(s[i: i + k])
72+
if tmp != 0 and num % tmp == 0:
73+
cnt += 1
74+
return cnt
6775
```
6876

6977
### **Java**
7078

7179
```java
72-
80+
class Solution {
81+
public int divisorSubstrings(int num, int k) {
82+
int cnt = 0;
83+
String s = String.valueOf(num);
84+
for (int i = 0; i <= s.length() - k; i++) {
85+
int tmp = Integer.parseInt(s.substring(i, i + k));
86+
if (tmp != 0 && num % tmp == 0) {
87+
cnt++;
88+
}
89+
}
90+
return cnt;
91+
}
92+
}
7393
```
7494

7595
### **TypeScript**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class Solution {
2+
public int divisorSubstrings(int num, int k) {
3+
int cnt = 0;
4+
String s = String.valueOf(num);
5+
for (int i = 0; i <= s.length() - k; i++) {
6+
int tmp = Integer.parseInt(s.substring(i, i + k));
7+
if (tmp != 0 && num % tmp == 0) {
8+
cnt++;
9+
}
10+
}
11+
return cnt;
12+
}
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
class Solution:
2+
def divisorSubstrings(self, num: int, k: int) -> int:
3+
cnt = 0
4+
s = str(num)
5+
for i in range(len(s) - k + 1):
6+
tmp = int(s[i: i + k])
7+
if tmp != 0 and num % tmp == 0:
8+
cnt += 1
9+
return cnt

solution/2200-2299/2270.Number of Ways to Split Array/README.md

+25-2
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,38 @@
6262
<!-- 这里可写当前语言的特殊实现逻辑 -->
6363

6464
```python
65-
65+
class Solution:
66+
def waysToSplitArray(self, nums: List[int]) -> int:
67+
left, right = 0, sum(nums)
68+
cnt = 0
69+
for v in nums[:-1]:
70+
left += v
71+
right -= v
72+
if left >= right:
73+
cnt += 1
74+
return cnt
6675
```
6776

6877
### **Java**
6978

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

7281
```java
73-
82+
class Solution {
83+
public int waysToSplitArray(int[] nums) {
84+
long[] pre = new long[nums.length + 1];
85+
for (int i = 0; i < nums.length; i++) {
86+
pre[i + 1] = pre[i] + nums[i];
87+
}
88+
int cnt = 0;
89+
for (int i = 1; i < nums.length; i++) {
90+
if (pre[i] >= pre[nums.length] - pre[i]) {
91+
cnt++;
92+
}
93+
}
94+
return cnt;
95+
}
96+
}
7497
```
7598

7699
### **TypeScript**

solution/2200-2299/2270.Number of Ways to Split Array/README_EN.md

+25-2
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,36 @@ There are two valid splits in nums:
5555
### **Python3**
5656

5757
```python
58-
58+
class Solution:
59+
def waysToSplitArray(self, nums: List[int]) -> int:
60+
left, right = 0, sum(nums)
61+
cnt = 0
62+
for v in nums[:-1]:
63+
left += v
64+
right -= v
65+
if left >= right:
66+
cnt += 1
67+
return cnt
5968
```
6069

6170
### **Java**
6271

6372
```java
64-
73+
class Solution {
74+
public int waysToSplitArray(int[] nums) {
75+
long[] pre = new long[nums.length + 1];
76+
for (int i = 0; i < nums.length; i++) {
77+
pre[i + 1] = pre[i] + nums[i];
78+
}
79+
int cnt = 0;
80+
for (int i = 1; i < nums.length; i++) {
81+
if (pre[i] >= pre[nums.length] - pre[i]) {
82+
cnt++;
83+
}
84+
}
85+
return cnt;
86+
}
87+
}
6588
```
6689

6790
### **TypeScript**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
class Solution {
2+
public int waysToSplitArray(int[] nums) {
3+
long[] pre = new long[nums.length + 1];
4+
for (int i = 0; i < nums.length; i++) {
5+
pre[i + 1] = pre[i] + nums[i];
6+
}
7+
int cnt = 0;
8+
for (int i = 1; i < nums.length; i++) {
9+
if (pre[i] >= pre[nums.length] - pre[i]) {
10+
cnt++;
11+
}
12+
}
13+
return cnt;
14+
}
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class Solution:
2+
def waysToSplitArray(self, nums: List[int]) -> int:
3+
left, right = 0, sum(nums)
4+
cnt = 0
5+
for v in nums[:-1]:
6+
left += v
7+
right -= v
8+
if left >= right:
9+
cnt += 1
10+
return cnt

0 commit comments

Comments
 (0)