0844.比较含退格的字符串
描述
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。
实例
输入:S = \"ab#c\", T = \"ad#c\"
输出:true
解释:S 和 T 都会变成 “ac”。
输入:S = \"ab##\", T = \"c#d#\"
输出:true
解释:S 和 T 都会变成 “”。
输入:S = \"a##c\", T = \"#a#c\"
输出:true
解释:S 和 T 都会变成 “c”。
输入:S = \"a#c\", T = \"b\"
输出:false
解释:S 会变成 “c”,但 T 仍然是 “b”。
提示
1 <= S.length <= 2001 <= T.length <= 200S和T只含有小写字母以及字符\'#\'。
题解
- 对于每个字符串,遍历
- 对于每个字符,如果是
#且栈不空则出栈 - 否则入栈当前字符
- 对于每个字符,如果是
- 比较两个字符串获得的
stack,相同则true否则false
public boolean backspaceCompare(String S, String T) {
Stack<Character> stackS = dealStr4_844(S);
Stack<Character> stackT = dealStr4_844(T);
if (stackS.size() != stackT.size())
return false;
for (int i=0;i<stackS.size();i++){
if (stackS.pop() != stackT.pop())
return false;
}
return true;
}
public Stack dealStr4_844(String s){
Stack<Character> stack = new Stack<>();
char nowChar;
for (int i=0;i<s.length();i++){
nowChar = s.charAt(i);
if (nowChar == \'#\'){
if (!stack.empty())
stack.pop();
} else
stack.push(nowChar);
}
return stack;
}
继续阅读与本文标签相同的文章
上一篇 :
汇编语言——计算表达式的值
下一篇 :
曾鸣:新商业和旧商业有什么区别? | 内部干货
-
springboot数据库主从方案
2026-05-18栏目: 教程
-
如何查找前置补丁-Windows安装补丁提示需要安装前置补丁
2026-05-18栏目: 教程
-
月活用户达7.55亿,阿里淘系如何在后流量时代引爆用户增长? | 9月17号栖夜读
2026-05-18栏目: 教程
-
B树和B+树索引原理
2026-05-18栏目: 教程
-
汇编(八)[bx] 、Loop指令
2026-05-18栏目: 教程
