当前位置: 首页 > news >正文

【数据结构-栈】力扣844. 比较含退格的字符串

给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。

注意:如果对空文本输入退格字符,文本继续为空。

示例 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 = “b”
输出:false
解释:s 会变成 “c”,但 t 仍然是 “b”。

提示:
1 <= s.length, t.length <= 200
s 和 t 只含有小写字母以及字符 ‘#’

重构字符串

class Solution {
public:bool backspaceCompare(string s, string t) {string res1, res2;for(char c : s){if(c != '#'){res1.push_back(c);}else if(!res1.empty()){res1.pop_back();}}for(char c : t){if(c != '#'){res2.push_back(c);}else if(!res2.empty()){res2.pop_back();}}return res1 == res2;}
};

使用了栈的方法,我们定义了两个新字符串res1和res2来记录s和t进行计算后的最终结果,最后看res1和res2是否相等。当s或t字符串中的字符不为#的时候,就将他推入到我们构造的新字符串中,如果字符为#,我们还要判断他是否为空,如果不为空的话,那么就将重构字符串的最后一个字符弹出。

最后返回res1 == res2即可。


http://www.mrgr.cn/news/34272.html

相关文章:

  • 更新gitignore后如何使其生效
  • 如何高效绘制ER图?
  • 2024.09.14 校招 实习 内推 面经
  • 稳定为恒定功率负载供电的 DC/DC 转换器
  • 海外博主大力推荐 Navicat Premium Lite 免费版
  • 【每天学个新注解】Day 3 Lombok注解简解(二)—@Log
  • Redis简单介绍与安装应用
  • NEMESIS: NORMALIZING THE SOFT-PROMPT VECTORS OF VISION-LANGUAGE MODELS
  • 如何在CentOS 7上升级KVM内核?
  • Fragment两种切换方式
  • 1. IP地址介绍
  • 2024年信息安全企业CRM选型与应用研究报告
  • 辛普森积分公式
  • CCPQT:2024年10月珠海学术会议
  • C#常用数据结构栈的介绍
  • 编译uboot出现 multiple definition of `yylloc‘ 问题
  • 探索未来科技前沿:云计算与大数据的深度融合
  • 基于TCP协议的网络通信
  • Android OpenGLES2.0开发(二):环境搭建
  • 塑料清洗加工污水处理具体流程和效果说明