# 844. 比较含退格的字符串
力扣原题链接(点我直达) (opens new window)
给定 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 只含有小写字母以及字符 '#'。
# 第一版,学1047题的string作为栈的方法
执行用时 :4 ms, 在所有 C++ 提交中击败了83.55%的用户
内存消耗 :8.5 MB, 在所有 C++ 提交中击败了82.47%的用户
bool backspaceCompare(string S, string T) {
string sTemp = "", tTemp = "";
for (auto s : S) {
if (s == '#') {
if (sTemp.size()>0)//注意判断条件
sTemp.pop_back();
else
continue;
}
else
sTemp += s;
}
for (auto t : T) {
if (t == '#') {
if (tTemp.size()>0)
tTemp.pop_back();
else
continue;
}
else
tTemp += t;
}
return sTemp == tTemp;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24