74.比较含退格的字符串

题号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;

}

};

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180610G0FT0300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券