LeetCode 比較含退格的字串

2021-10-24 22:42:28 字數 808 閱讀 8038

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

注意:如果對空文字輸入退格字元,文字繼續為空。

輸入:s = "ab#c", t = "ad#c"輸出:true解釋:s 和 t 都會變成 「ac」。
這道題第一種方法,重構字串。雙指標滑動檢查字元,當遍歷遇到非'#'時儲存至新字元陣列尾指標,否則尾指標退乙個值(表示刪除,注意溢位問題)。最後比較新字元陣列是否相等。時間o(n),空間o(1),如果字串轉陣列不計算空間的話。當然,也有人用棧來做,就是浪費記憶體而已。

class solution {

public boolean backspacecompare(string s, string t) {

char rss=s.tochararray();

char rst=t.tochararray();

//字元遍歷檢查,重構

int s=0;

for(int i=0;i第二種方法,這道題中,字串所有刪除字元'#'已經確定,'#'就刪前乙個有效字元,而'#'後面的必定是存在的,相同又要求所有保留字元都相等,即尾部字元相等。所以用雙陣列雙指標,逆序遍歷比較,相同則下乙個,不同則直接返回false,遇到'#'則向前滑動相應步數。

時間複雜度o(n),空間複雜度o(1),注意如果碰到不相同的情況,可能前幾個字元直接就返回了,時間o(1),這就是為什麼這個演算法優於重構演算法的原因。

**略。

leetcode比較含退格的字串c

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

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