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

LeetCode 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 只含有小写字母以及字符 ‘#’

进阶:

你可以用 O(n) 的时间复杂度和 O(1) 的空间复杂度解决该问题吗?

双指针,两个指针开始时各自指向两个字符串尾部,然后向前遍历即可:

class Solution {
public:bool backspaceCompare(string s, string t) {int sIdx = s.size() - 1;int tIdx = t.size() - 1;int sDelete = 0;int tDelete = 0;while (sIdx >= 0 && tIdx >= 0) {if (s[sIdx] == '#') {--sIdx;++sDelete;continue;}if (t[tIdx] == '#') {--tIdx;++tDelete;continue;}if (sDelete > 0) {--sIdx;--sDelete;continue;}if (tDelete > 0) {--tIdx;--tDelete;continue;}if (s[sIdx] != t[tIdx]) {return false;}--sIdx;--tIdx;}// 以上循环结束时,可能s或t其中一个还没有遍历完// s尚未遍历完,由于t已被遍历完,因此接下来s中不可以出现删不掉的字符while (sIdx >= 0) {if (s[sIdx] == '#') {--sIdx;++sDelete;continue;}if (sDelete > 0) {--sIdx;--sDelete;continue;}return false;}while (tIdx >= 0) {if (t[tIdx] == '#') {--tIdx;++tDelete;continue;}if (tDelete > 0) {--tIdx;--tDelete;continue;}return false;}return true;}
};

如果s的长度为n,t的长度为m,则此算法时间复杂度为O(n+m),空间复杂度为O(1)。

http://www.xdnf.cn/news/19780.html

相关文章:

  • Redis的删除策略:内存满了,谁先走?
  • 自从不小心踢了一脚主机之后,电脑频繁蓝屏、死机、无法开机……
  • vscode无法复制terminal信息
  • TypeScript Awaited:一招搞定异步函数返回值类型
  • 【JavaScript】读取商品页面中的结构化数据(JSON-LD),在不改动服务端情况下,实现一对一跳转
  • Nano Banana 复刻分镜,多图结合片刻生成想要的视频
  • 年轻教师开学焦虑破解:从心出发,重构健康工作生活新秩序
  • Unity核心概率④:MonoBehavior
  • RAGFlow——知识库检索系统开发实战指南(包含聊天和Agent模式)
  • 硬件板级设计笔试题目-基础篇-卷8
  • 纯前端html英文字帖图片生成器自动段落和换行
  • 人体姿态估计与动作分类研究报告
  • 文字识别接口-文字识别技术-ocr api
  • Corrosion: 1靶场渗透
  • 职业院校汽车专业数字化课程资源包——虚拟仿真实训资源建设方案
  • 解密llama.cpp CUDA后端:512 token大模型批处理的异步流水线架构
  • Redis 的压缩列表:像快递驿站 “紧凑货架“ 一样的内存优化结构
  • Web3 开发者周刊 65 | DAT的崛起
  • 相较于传统AR矿物鉴定有哪些优势?
  • 从“叠加”到“重叠”:Overlay 与 Overlap 双引擎驱动技术性能优化
  • 趣味学RUST基础篇(HashMap)
  • QML的focus与activeFocus
  • 【Vue2 ✨】Vue2 入门之旅(九):Vue Router 入门
  • 从“人海战术”到“AI协同”:良策金宝AI如何助力设计院数智化跃迁?
  • NLP×第六卷:她给记忆加了筛子——LSTM与GRU的贴靠机制
  • ADB图片上传轮播
  • 【MySQL】初识数据库基础
  • 12.《ACL 与 NAT 技术实验指南》
  • 基于飞算JavaAI的在线图书借阅平台设计与实现
  • 【国内外云计算平台对比:AWS/阿里云/Azure】