題目
難度:★★☆☆☆
類(lèi)型:棧,字符串
給定 S 和 T 兩個(gè)字符串,當(dāng)它們分別被輸入到空白的文本編輯器后,判斷二者是否相等,并返回結(jié)果。 # 代表退格字符。
提示
1 <= S.length <= 200
1 <= T.length <= 200
S 和 T 只含有小寫(xiě)字母以及字符 '#'。
示例
示例 1
輸入:S = "ab#c", T = "ad#c"
輸出:true
解釋?zhuān)篠 和 T 都會(huì)變成 “ac”。
示例 2
輸入:S = "ab##", T = "c#d#"
輸出:true
解釋?zhuān)篠 和 T 都會(huì)變成 “”。
示例 3
輸入:S = "a##c", T = "#a#c"
輸出:true
解釋?zhuān)篠 和 T 都會(huì)變成 “c”。
示例 4
輸入:S = "a#c", T = "b"
輸出:false
解釋?zhuān)篠 會(huì)變成 “c”,但 T 仍然是 “b”。
解答
我們可以使用棧結(jié)構(gòu)處理退格的問(wèn)題,按照順序?qū)⒆址饌€(gè)入棧,如果遇到“#”則將棧頂元素彈出,最后將棧中留下來(lái)的元素按照順序連接成字符串即可。
class Solution:
def backspaceCompare(self, S: str, T: str) -> bool:
def remove_backspace(s):
res = []
for c in s:
if c == '#' and res:
res.pop()
else:
res.append(c)
return ''.join(res)
return remove_backspace(S) == remove_backspace(T)
如有疑問(wèn)或建議,歡迎評(píng)論區(qū)留言~