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

LeetCode 844. 比较含退格的字符串 (C++实现)

1. 题目描述

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

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

示例 1:

输入:s = “ab#c”, t = “ad#c”
输出:true
解释:s 和 t 都会变成 “ac”。

示例 2:

输入:s = “ab##”, t = “c#d#”
输出:true
解释:s 和 t 都会变成 “”。

示例 2:

输入:s = “a#c”, t = “b”
输出:false
解释:s 会变成 “c”,但 t 仍然是 “b”。

2. 解题思路

分别处理s和t,以s举例,首先定义慢指针slow和快指针fast,遍历字符串元素,如果快指针指向的当前元素不等于#,则将快指针指向位置的值赋给慢指针指向的位置,慢指针向后移动一位,否则继续移动快指针,不赋值,如果快指针指向的当前元素等于#,这时候判断slow指针是否在字符串的起始位置,不是的话减1。循环结束后比较处理之后的s和t是否相同。

3. 代码实现

class Solution {
public:string change(string str){int slow = 0;for (int fast = 0; fast < str.size(); fast++){if (str[fast] != '#'){str[slow] = str[fast];slow++;}else if (slow > 0){slow--;}}return str.substr(0,slow);}bool backspaceCompare(string s, string t) {return change(s) == change(t);}
};
http://www.lryc.cn/news/509308.html

相关文章:

  • Python8-写一些小作业
  • C++ STL vector基本原理和用法
  • 【计算机视觉基础CV-图像分类】05 - 深入解析ResNet与GoogLeNet:从基础理论到实际应用
  • 【人工智能-初级】基于用户的协同过滤推荐算法
  • 如何识别钓鱼邮件和诈骗网站?(附网络安全意识培训PPT资料)
  • Rust 在前端基建中的使用
  • 【人工智能】基于Python和OpenCV实现实时人脸识别系统:从基础到应用
  • Python 自动化 打开网站 填表登陆 例子
  • 【Chrome】浏览器提示警告Chrome is moving towards a new experience
  • 网络下载ts流媒体
  • iDP3复现代码模型训练全流程(一)——train_policy.sh
  • 重温设计模式--单例模式
  • 【人工智能】Python中的机器学习管道:如何用scikit-learn构建高效的ML管道
  • Redis存在安全漏洞
  • Scala图书管理系统
  • 【数据可视化案列】白葡萄酒质量数据的EDA可视化分析
  • Postman接口测试:全局变量/接口关联/加密/解密
  • vue+elementui实现下拉表格多选+搜索+分页+回显+全选2.0
  • 电商系统-产品经理
  • 《庐山派从入门到...》PWM板载蜂鸣器
  • 【河南新标】豫财预〔2024〕105号-《关于省级政务信息化建设项目支出预算标准的规定》-费用标准解读系列29
  • 【数据结构】数据结构整体大纲
  • 【C++基础】09、结构体
  • 大恒相机开发(2)—Python软触发调用采集图像
  • QT的前景与互联网岗位发展
  • 青藤入选工信部“2024年网络安全技术应用典型案例拟支持项目名单”
  • NVIDIA GPU 内部架构介绍
  • 重温设计模式----装饰模式
  • 第十六章 C++ 字符串
  • MySQL中Seconds_Behind_Master是怎么计算的