File tree Expand file tree Collapse file tree 1 file changed +65
-0
lines changed Expand file tree Collapse file tree 1 file changed +65
-0
lines changed Original file line number Diff line number Diff line change @@ -399,6 +399,71 @@ var backspaceCompare = function(s, t) {
399
399
400
400
```
401
401
402
+ ### TypeScript
403
+
404
+ > 双栈法:
405
+
406
+ ```typescript
407
+ function backspaceCompare (s: string, t: string): boolean {
408
+ const stack1: string[ ] = [ ] ,
409
+ stack2: string[ ] = [ ] ;
410
+ for (let c of s) {
411
+ if (c === '#') {
412
+ stack1.pop();
413
+ } else {
414
+ stack1.push(c);
415
+ }
416
+ }
417
+ for (let c of t) {
418
+ if (c === '#') {
419
+ stack2.pop();
420
+ } else {
421
+ stack2.push(c);
422
+ }
423
+ }
424
+ if (stack1.length !== stack2.length) return false;
425
+ for (let i = 0, length = stack1.length; i < length; i++) {
426
+ if (stack1[ i] !== stack2[ i] ) return false;
427
+ }
428
+ return true;
429
+ };
430
+ ```
431
+
432
+ > 双指针法:
433
+
434
+ ```typescript
435
+ function backspaceCompare(s: string, t: string): boolean {
436
+ let sIndex: number = s.length - 1,
437
+ tIndex: number = t.length - 1;
438
+ while (true) {
439
+ sIndex = getIndexAfterDel(s, sIndex);
440
+ tIndex = getIndexAfterDel(t, tIndex);
441
+ if (sIndex < 0 || tIndex < 0) break;
442
+ if (s[sIndex] !== t[tIndex]) return false;
443
+ sIndex--;
444
+ tIndex--;
445
+ }
446
+ return sIndex === -1 && tIndex === -1;
447
+ };
448
+ function getIndexAfterDel(s: string, startIndex: number): number {
449
+ let backspaceNum: number = 0;
450
+ while (startIndex >= 0) {
451
+ // 不可消除
452
+ if (s[startIndex] !== '#' && backspaceNum === 0) break;
453
+ // 可消除
454
+ if (s[startIndex] === '#') {
455
+ backspaceNum++;
456
+ } else {
457
+ backspaceNum--;
458
+ }
459
+ startIndex--;
460
+ }
461
+ return startIndex;
462
+ }
463
+ ```
464
+
465
+
466
+
402
467
403
468
-----------------------
404
469
<div align =" center " ><img src =https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width =500 > </img ></div >
You can’t perform that action at this time.
0 commit comments