LeetCode 844 比較含退格的字串

2022-08-24 05:42:10 字數 1093 閱讀 9105

給定 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 只含有小寫字母以及字元 '#'。

高階:你可以用 o(n) 的時間複雜度和 o(1) 的空間複雜度解決該問題嗎?

(1)如果使用棧的方法來做的話,只要依次遍歷字串,如果遇到『#』字元的話,就彈出棧頂元素,否則壓入棧。

再比較兩個棧最終的元素。

(2)如果用\(o(n)\)的複雜度的話 那麼可以利用反序遍歷的方法比較兩個字串。分別定義兩個變數存放當前要刪除字元的個數,即『#』的個數。

一邊遍歷一邊回刪,直到遇到兩字串有留下來的元素不相等的情況,結束迴圈 返回false。

這種思路的關鍵是:『#』字元只與其前面的字元相關,與之後的字元無關。

class solution 

else if(dels > 0)

else break;

}while(n>=0)

else if(delt > 0)

else break;

}if(m>=0 && n >=0)

else

m--;n--;

}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...