844 比較含退格的字串

2021-10-24 22:59:04 字數 1359 閱讀 7397

給定 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)將#替換為空格,將#前面的字元替換為空格

ps:這裡將#替換為空格沒有問題,

將#前面的字元替換為空格要注意,要從#前面開始查詢到不為空格的字元替換為空格

比如ab##,替換第乙個#為空格以後為a' '' '#

替換第二個#的時候,如果直接將# 前面的字元替換為空格的話,就出錯了,a' '' '' '

########要一直查詢到不為空格的a替換為空格,' '' '' '' ',就成了4個空格

**如下

void replace_str(char *str)

}}

i++;

}}

2)將空格字元刪除

**如下

void delete_str(char *str)

str_c[j]='\0';

str=str_c;

}

這裡將幾個功能拆分成單獨的函式,以後遇到相關的字元處理功能,可以直接復用函式。

所有**如下

void replace_str(char *str)

}}

i++;

}}//delete ' '

void delete_str(char *str)

str_c[j]='\0';

str=str_c;

}bool backspacecompare(char * s, char * t)

return false;

}

844 比較含退格的字串

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

844 比較含退格的字串

1 棧的思想,stack的大小用size,string的大小用length 2 要注意在遇到字元 號時不要直接彈出棧的元素,要先判斷棧中是否存在元素,若不存在還彈出元素將會發生記憶體問題 3 退格的意思 class solution else stk1.push s i for int j 0 je...

844 比較含退格的字串

給定 s 和 t 兩個字串,當它們分別被輸入到空白的文字編輯器後,判斷二者是否相等,並返回結果。代表退格字元。注意 如果對空文字輸入退格字元,文字繼續為空。輸入 s ab c t ad c 輸出 true 解釋 s 和 t 都會變成 ac class solution def backspaceco...