mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-11 13:00:22 +08:00
增加844. 比较含退格的字符串 JavaScript版本
This commit is contained in:
@ -232,6 +232,64 @@ func backspaceCompare(s string, t string) bool {
|
|||||||
```
|
```
|
||||||
|
|
||||||
JavaScript:
|
JavaScript:
|
||||||
|
```javascript
|
||||||
|
// 双栈
|
||||||
|
var backspaceCompare = function(s, t) {
|
||||||
|
const arrS = [], arrT = []; // 数组作为栈使用
|
||||||
|
for(let char of s){
|
||||||
|
char === '#' ? arrS.pop() : arrS.push(char);
|
||||||
|
}
|
||||||
|
for(let char of t){
|
||||||
|
char === '#' ? arrT.pop() : arrT.push(char);
|
||||||
|
}
|
||||||
|
return arrS.join('') === arrT.join(''); // 比较两个字符串是否相等
|
||||||
|
};
|
||||||
|
|
||||||
|
//双栈精简
|
||||||
|
var backspaceCompare = function(s, t) {
|
||||||
|
const getString = s => {
|
||||||
|
let arrS = [];
|
||||||
|
for(let char of s){
|
||||||
|
char === '#' ? arrS.pop() : arrS.push(char);
|
||||||
|
}
|
||||||
|
return arrS.join('');
|
||||||
|
}
|
||||||
|
return getString(s) === getString(t);
|
||||||
|
};
|
||||||
|
|
||||||
|
//双指针
|
||||||
|
var backspaceCompare = function(s, t) {
|
||||||
|
let sSkipNum = 0; // 记录s的#数量
|
||||||
|
let tSkipNum = 0; // 记录t的#数量
|
||||||
|
let i = s.length - 1, j = t.length - 1;
|
||||||
|
while(true) {
|
||||||
|
while(i >= 0){ // 从后向前,消除s的#
|
||||||
|
if(s[i] === '#') sSkipNum++;
|
||||||
|
else {
|
||||||
|
if (sSkipNum > 0) sSkipNum--;
|
||||||
|
else break;
|
||||||
|
}
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
while (j >= 0) { // 从后向前,消除t的#
|
||||||
|
if (t[j] === '#') tSkipNum++;
|
||||||
|
else {
|
||||||
|
if (tSkipNum > 0) tSkipNum--;
|
||||||
|
else break;
|
||||||
|
}
|
||||||
|
j--;
|
||||||
|
}
|
||||||
|
// 后半部分#消除完了,接下来比较s[i] != t[j]
|
||||||
|
if (i < 0 || j < 0) break; // s 或者t 遍历到头了
|
||||||
|
if (s[i] !== t[j]) return false;
|
||||||
|
i--;j--;
|
||||||
|
}
|
||||||
|
// 说明s和t同时遍历完毕
|
||||||
|
if (i == -1 && j == -1) return true;
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
* 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)
|
* 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)
|
||||||
|
Reference in New Issue
Block a user