@@ -240,6 +240,83 @@ public:
240
240
};
241
241
```
242
242
243
+ ### ** TypeScript**
244
+
245
+ ``` ts
246
+ function exist(board : string [][], word : string ): boolean {
247
+ const m = board .length ;
248
+ const n = board [0 ].length ;
249
+ const dfs = (y : number , x : number , i : number ) => {
250
+ if (i === word .length ) {
251
+ return true ;
252
+ }
253
+ if ((board [y ] || [])[x ] !== word [i ]) {
254
+ return false ;
255
+ }
256
+ const temp = board [y ][x ];
257
+ board [y ][x ] = ' ' ;
258
+ if (
259
+ dfs (y + 1 , x , i + 1 ) ||
260
+ dfs (y , x + 1 , i + 1 ) ||
261
+ dfs (y - 1 , x , i + 1 ) ||
262
+ dfs (y , x - 1 , i + 1 )
263
+ ) {
264
+ return true ;
265
+ }
266
+ board [y ][x ] = temp ;
267
+ return false ;
268
+ };
269
+ for (let i = 0 ; i < m ; i ++ ) {
270
+ for (let j = 0 ; j < n ; j ++ ) {
271
+ if (dfs (i , j , 0 )) {
272
+ return true ;
273
+ }
274
+ }
275
+ }
276
+ return false ;
277
+ }
278
+ ```
279
+
280
+ ### ** Rust**
281
+
282
+ ``` rust
283
+ impl Solution {
284
+ fn dfs (board : & mut Vec <Vec <char >>, chars : & Vec <char >, y : usize , x : usize , i : usize ) -> bool {
285
+ if board [y ][x ] != chars [i ] {
286
+ return false ;
287
+ }
288
+ if i + 1 == chars . len () {
289
+ return true ;
290
+ }
291
+ let temp = board [y ][x ];
292
+ board [y ][x ] = ' ' ;
293
+ if y != 0 && Solution :: dfs (board , chars , y - 1 , x , i + 1 )
294
+ || x != 0 && Solution :: dfs (board , chars , y , x - 1 , i + 1 )
295
+ || y != board . len () - 1 && Solution :: dfs (board , chars , y + 1 , x , i + 1 )
296
+ || x != board [0 ]. len () - 1 && Solution :: dfs (board , chars , y , x + 1 , i + 1 )
297
+ {
298
+ return true ;
299
+ }
300
+ board [y ][x ] = temp ;
301
+ false
302
+ }
303
+
304
+ pub fn exist (mut board : Vec <Vec <char >>, word : String ) -> bool {
305
+ let m = board . len ();
306
+ let n = board [0 ]. len ();
307
+ let chars = word . chars (). collect :: <Vec <char >>();
308
+ for i in 0 .. m {
309
+ for j in 0 .. n {
310
+ if Solution :: dfs (& mut board , & chars , i , j , 0 ) {
311
+ return true ;
312
+ }
313
+ }
314
+ }
315
+ false
316
+ }
317
+ }
318
+ ```
319
+
243
320
### ** ...**
244
321
245
322
```
0 commit comments