当前位置: 首页 > 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.lryc.cn/news/445009.html

相关文章:

  • DataFrame生成excel后为什么多了一行数字
  • linux 内存屏障(barrier)分析
  • 【人工智能】Transformers之Pipeline(十九):文生文(text2text-generation)
  • 如何使用ssm实现基于VUE的儿童教育网站的设计与实现+vue
  • MODBUS TCP 转 CANOpen
  • vue2+elementUI实现handleSelectionChange批量删除-前后端
  • LLMs之OCR:llm_aided_ocr(基于LLM辅助的OCR项目)的简介、安装和使用方法、案例应用之详细攻略
  • 低代码平台后端搭建-阶段完结
  • 暑假考研集训营游记
  • C#中的报文(Message)
  • Python知识点:如何使用Python与Java进行互操作(Jython)
  • ffmpeg解封装解码
  • golang学习笔记10-循环结构
  • Java高级编程——泛型(泛型类、泛型接口、泛型方法,完成详解,并附有案例+代码)
  • GPU硬件如何实现光栅化?
  • Python写入文件内容:从入门到精通
  • 相亲交易系统源码详解与开发指南
  • Golang | Leetcode Golang题解之第413题等差数列划分
  • 汽车总线之----FlexRay总线
  • 前端代替后端做分页操作
  • L3 逻辑回归
  • Flink系列知识之:Checkpoint原理
  • 智算中心动环监控:构建高效、安全的数字基础设施@卓振思众
  • PyTorch VGG16手写数字识别教程
  • 安卓13删除下拉栏中的设置按钮 android13删除设置按钮
  • FDA辅料数据库在线免费查询-药用辅料
  • git pull 报错 refusing to merge unrelated histories
  • STM32G431RBT6(蓝桥杯)串口(发送)
  • 使用 typed-rest-client 进行 REST API 调用
  • 在Ubuntu 14.04上安装Solr的方法