題目

給定兩個字串s、t,’#’代表退格符號。退格完之後,去判斷s和t是否為相同字串。

解題方法

暴力法解決,用Stack去做。
快樂的笨蛋

程式碼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class Solution {
public:
bool backspaceCompare(string s, string t) {
stack<char> s_t;
stack<char> t_t;
for(int i = 0;i<s.length();++i)
{
if(s[i] == '#' && s_t.size() !=0)
s_t.pop();
else if(s[i] != '#')
s_t.push(s[i]);
}
for(int i = 0;i<t.length();++i)
{
if(t[i] == '#' && t_t.size() !=0)
t_t.pop();
else if(t[i] != '#')
t_t.push(t[i]);
}

if(s_t.size() != t_t.size())
return false;

int size = s_t.size();
for(int i =0;i<size;++i)
{
if(s_t.top() != t_t.top())
return false;
s_t.pop();
t_t.pop();
}
return true;
}
};