一、題目
給定 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
只含有小寫字母以及字符'#'
。
二、題解思路
- 題解思路:針對每個字符串進行如下處理然後進行比較:建立一個vector存取處理後的結果,如果遇到非#,則將字母存(push_back())到vector中,如果遇到#,此時vector非空,則刪除vector中的最後一個元素。
三、代碼實現
- C++代碼實現
{
public:
bool backspaceCompare(string S, string T)
{
if(backspace(S)==backspace(T))
return true;
return false;
}
vector<char> backspace(string K) //處理函數
{
vector<char> nums;
for(auto c:K) //遍歷字符串
{
if(!nums.empty() && c == '#')
nums.pop_back();
else if(c != '#')
nums.push_back(c);
}
return nums;
}
};