题号844:
给定和两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。代表退格字符。
示例 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
和只含有小写字母以及字符。
解题思路:
遍历字符串,若遇到'#',则往回删掉2个字符(此处需要作边界判断,如果'#'之前没有别的字符,只需删除掉'#')。最后比较两个字符串是否相等。
代码实现:
class Solution {
public:
bool backspaceCompare(string S, string T) {
int i=0;
while(S.length()>0 && i
if(S[i]=='#'){
if(i-1>=0){
S.erase(i-1,2);
i--;
}else if(i>=0){
S.erase(i,1);
}
}else{
i++;
}
}
i=0;
while(T.length()>0 && i
if(T[i]=='#'){
if(i-1>=0){
T.erase(i-1,2);
i--;
}else if(i>=0){
T.erase(i,1);
}
}else{
i++;
}
}
return S==T;
}
};
领取专属 10元无门槛券
私享最新 技术干货