Skip to content

Commit ad81ee6

Browse files
committed
feat: add solutions to lc problem: No.0415
No.0415.Add Strings
1 parent 3a0b834 commit ad81ee6

File tree

4 files changed

+131
-0
lines changed

4 files changed

+131
-0
lines changed

solution/0400-0499/0415.Add Strings/README.md

+47
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,53 @@ func addStrings(num1 string, num2 string) string {
155155
}
156156
```
157157

158+
### **TypeScript**
159+
160+
```ts
161+
function addStrings(num1: string, num2: string): string {
162+
const res = [];
163+
let i = num1.length - 1;
164+
let j = num2.length - 1;
165+
let isOver = false;
166+
while (i >= 0 || j >= 0 || isOver) {
167+
const x = Number(num1[i--]) || 0;
168+
const y = Number(num2[j--]) || 0;
169+
const sum = x + y + (isOver ? 1 : 0);
170+
isOver = sum >= 10;
171+
res.push(sum % 10);
172+
}
173+
return res.reverse().join('');
174+
}
175+
```
176+
177+
### **Rust**
178+
179+
```rust
180+
impl Solution {
181+
pub fn add_strings(num1: String, num2: String) -> String {
182+
let mut res = vec![];
183+
let s1 = num1.as_bytes();
184+
let s2 = num2.as_bytes();
185+
let (mut i, mut j) = (s1.len(), s2.len());
186+
let mut is_over = false;
187+
while i != 0 || j != 0 || is_over {
188+
let mut sum = if is_over { 1 } else { 0 };
189+
if i != 0 {
190+
sum += (s1[i - 1] - b'0') as i32;
191+
i -= 1;
192+
}
193+
if j != 0 {
194+
sum += (s2[j - 1] - b'0') as i32;
195+
j -= 1;
196+
}
197+
is_over = sum >= 10;
198+
res.push((sum % 10).to_string());
199+
}
200+
res.into_iter().rev().collect()
201+
}
202+
}
203+
```
204+
158205
### **...**
159206

160207
```

solution/0400-0499/0415.Add Strings/README_EN.md

+47
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,53 @@ func addStrings(num1 string, num2 string) string {
143143
}
144144
```
145145

146+
### **TypeScript**
147+
148+
```ts
149+
function addStrings(num1: string, num2: string): string {
150+
const res = [];
151+
let i = num1.length - 1;
152+
let j = num2.length - 1;
153+
let isOver = false;
154+
while (i >= 0 || j >= 0 || isOver) {
155+
const x = Number(num1[i--]) || 0;
156+
const y = Number(num2[j--]) || 0;
157+
const sum = x + y + (isOver ? 1 : 0);
158+
isOver = sum >= 10;
159+
res.push(sum % 10);
160+
}
161+
return res.reverse().join('');
162+
}
163+
```
164+
165+
### **Rust**
166+
167+
```rust
168+
impl Solution {
169+
pub fn add_strings(num1: String, num2: String) -> String {
170+
let mut res = vec![];
171+
let s1 = num1.as_bytes();
172+
let s2 = num2.as_bytes();
173+
let (mut i, mut j) = (s1.len(), s2.len());
174+
let mut is_over = false;
175+
while i != 0 || j != 0 || is_over {
176+
let mut sum = if is_over { 1 } else { 0 };
177+
if i != 0 {
178+
sum += (s1[i - 1] - b'0') as i32;
179+
i -= 1;
180+
}
181+
if j != 0 {
182+
sum += (s2[j - 1] - b'0') as i32;
183+
j -= 1;
184+
}
185+
is_over = sum >= 10;
186+
res.push((sum % 10).to_string());
187+
}
188+
res.into_iter().rev().collect()
189+
}
190+
}
191+
```
192+
146193
### **...**
147194

148195
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
impl Solution {
2+
pub fn add_strings(num1: String, num2: String) -> String {
3+
let mut res = vec![];
4+
let s1 = num1.as_bytes();
5+
let s2 = num2.as_bytes();
6+
let (mut i, mut j) = (s1.len(), s2.len());
7+
let mut is_over = false;
8+
while i != 0 || j != 0 || is_over {
9+
let mut sum = if is_over { 1 } else { 0 };
10+
if i != 0 {
11+
sum += (s1[i - 1] - b'0') as i32;
12+
i -= 1;
13+
}
14+
if j != 0 {
15+
sum += (s2[j - 1] - b'0') as i32;
16+
j -= 1;
17+
}
18+
is_over = sum >= 10;
19+
res.push((sum % 10).to_string());
20+
}
21+
res.into_iter().rev().collect()
22+
}
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
function addStrings(num1: string, num2: string): string {
2+
const res = [];
3+
let i = num1.length - 1;
4+
let j = num2.length - 1;
5+
let isOver = false;
6+
while (i >= 0 || j >= 0 || isOver) {
7+
const x = Number(num1[i--]) || 0;
8+
const y = Number(num2[j--]) || 0;
9+
const sum = x + y + (isOver ? 1 : 0);
10+
isOver = sum >= 10;
11+
res.push(sum % 10);
12+
}
13+
return res.reverse().join('');
14+
}

0 commit comments

Comments
 (0)