File tree 4 files changed +131
-0
lines changed
solution/0400-0499/0415.Add Strings
4 files changed +131
-0
lines changed Original file line number Diff line number Diff line change @@ -155,6 +155,53 @@ func addStrings(num1 string, num2 string) string {
155
155
}
156
156
```
157
157
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
+
158
205
### ** ...**
159
206
160
207
```
Original file line number Diff line number Diff line change @@ -143,6 +143,53 @@ func addStrings(num1 string, num2 string) string {
143
143
}
144
144
```
145
145
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
+
146
193
### ** ...**
147
194
148
195
```
Original file line number Diff line number Diff line change
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 number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments