給定 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個空格
**如下
2)將空格字元刪除void replace_str(char *str)
}}
i++;
}}
**如下
這裡將幾個功能拆分成單獨的函式,以後遇到相關的字元處理功能,可以直接復用函式。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...