leetcode 844 比較含退格的字串

2021-09-19 17:07:05 字數 1326 閱讀 7003

描述

給定 s 和 t 兩個字串,當它們分別被輸入到空白的文字編輯器後,判斷二者是否相等,並返回結果。 # 代表退格字元。

示例 1:

輸入:s = 「ab#c」, t = 「ad#c」

輸出:true

解釋:s 和 t 都會變成 「ac」。

示例 2:

輸入:s = 「ab##」, t = 「c#d#」

輸出:true

解釋:s 和 t 都會變成 「」。

示例 3:

輸入:s = 「a##c」, t = 「#a#c」

輸出:true

解釋:s 和 t 都會變成 「c」。

示例 4:

輸入:s = 「a#c」, t = 「b」

輸出:false

解釋:s 會變成 「c」,但 t 仍然是 「b」。

1 <= s.length <= 200

1 <= t.length <= 200

s 和 t 只含有小寫字母以及字元 『#』。

思路解法一

借用兩個棧,這裡直接用字串來的,c++裡面字串有棧的作用。從前往後掃瞄輸入字串,不為空遇到#,出棧乙個字元,遇到字母,入棧。最後比較構造的兩個字串是否相等。

class

solution

string f

(string t)

else

}return s1;}}

;

這是用不用字串用char棧的解法。

class

solution

return

true;}

void

f(stack<

char

>

&st,string s)

}else}}

};

解法二

我們從後往前看,如果遇到的是字母,這個字母肯定是不會被退格給刪除的,如果遇到的是#,我們就需要跳過下乙個字母字元。

class

solution

while

(t>=0)

if(s>=

0&&t>=

0&&s[s]

!=t[t]

)return

false;//

if((s>=0)

!=(t>=0)

)return

false

;//字母和空比較

s--,t--;}

return

true;}

};

leetcode 844 比較含退格的字串

給定s和t兩個字串,當它們分別被輸入到空白的文字編輯器後,判斷二者是否相等,並返回結果。代表退格字元。示例 1 輸入 s ab c t ad c 輸出 true解釋 s 和 t 都會變成 ac 示例 2 輸入 s ab t c d 輸出 true解釋 s 和 t 都會變成 示例 3 輸入 s a c...

leetcode 844 比較含退格的字串

近期一直在用python刷leetcode的題,都提交到了github上了 給定s和t兩個字串,當它們分別被輸入到空白的文字編輯器後,判斷二者是否相等,並返回結果。代表退格字元。示例 1 輸入 s ab c t ad c 輸出 true 解釋 s 和 t 都會變成 ac 示例 2 輸入 s ab t...

LeetCode 844 比較含退格的字串

輸入 s ab c t ad c 輸出 true 解釋 s 和 t 都會變成 ac 示例 2 輸入 s ab t c d 輸出 true 解釋 s 和 t 都會變成 示例 3 輸入 s a c t a c 輸出 true 解釋 s 和 t 都會變成 c 示例 4 輸入 s a c t b 輸出 fa...