一:题目

二:思路+代码

1:利用栈

(1):思路

1.利用栈 我们将字符串中的单个元素都入栈 当遇到’#'的时候将将栈顶元素弹出

(2):上码(方法一)

class Solution {public:/**思路:1.利用栈 我们将字符串中的单个元素都入栈 当遇到'#'的时候将将栈顶元素弹出*/bool backspaceCompare(string s, string t) {stack<char> s1,s2;for(char str:s){if(str != '#'){s1.push(str);}else if(!s1.empty()){s1.pop();}}for(char str:t){if(str != '#'){s2.push(str);}else if(!s2.empty()){s2.pop();}}return s1 == s2;}
};

(3):方法二

class Solution {public:/**思路:1.利用栈 我们将字符串中的单个元素都入栈 当遇到'#'的时候将将栈顶元素弹出*/bool backspaceCompare(string s, string t) {return text(s) == text(t);}string text (string str){string s;for(int i = 0; i < str.size(); i++){if(str[i] != '#')s.push_back(str[i]);else if(!s.empty())s.pop_back();}return s;}};

2:双指针

(1):思路

1.我们在遇到’#‘的时候 是删除其前面的元素,而与后面的元素无关,那么我们可以逆序遍历
字符串,当遇到’#‘的时候,指针就往前走,然后当kipNum为0的时候证明我们已经成功移 除一个字符(其实是模拟)
2.这里设置skipNum,tkipNUm两个变量,来记录两个字符串中的’#‘的数量,来模拟消除的过程
那么在这里双指针主要是用在来比较单个字符,就是我们遍历到最后,我们是否可以得到相同
的字符,或者是同时遍历完成,那么也会说明去除’#'前面的字符后的字符串依然相等

(2):上码

class Solution {public:/**思路:1.我们在遇到'#'的时候 是删除其前面的元素,而与后面的元素无关,那么我们可以逆序遍历字符串,当遇到'#'的时候,指针就往前走,然后当kipNum为0的时候证明我们已经成功移        除一个字符(其实是模拟)2.这里设置skipNum,tkipNUm两个变量,来记录两个字符串中的'#'的数量,来模拟消除的过程那么在这里双指针主要是用在来比较单个字符,就是我们遍历到最后,我们是否可以得到相同的字符,或者是同时遍历完成,那么也会说明去除'#'前面的字符后的字符串依然相等*/bool backspaceCompare(string s, string t) {int sKipNum = 0;//记录s中'#'的数量 主要是为了模拟去除'#'前面的字符int tkipNum = 0;//记录t中'#'的数量//双指针int i = s.size() - 1;//逆序int j = t.size() - 1;while(1){//从后往前,消除s中的#    while(i >= 0){if(s[i] == '#')//当遇到#的时候这个while循环就有意义了,直到skipnum == 0的时候才跳出这个循环,表示模拟删除了 # 前面的字符sKipNum++;else{if(sKipNum > 0)sKipNum--;elsebreak;}i--;//往前走一个字符}while(j >= 0){if(t[j] == '#')tkipNum++;else{if(tkipNum > 0)tkipNum--;elsebreak;    }    j--;}//S或者T到头了,那么此时的 i 和 j 为 -1 因为我们是比较单个字符的 if(i < 0 || j < 0)break;//如果两个字符不相等则可以直接返回 trueif(s[i] != t[j])return false;    i--;//比如比较的第一个字符相等(逆序)j--;}if(i == -1 && j == -1)return true;elsereturn false;}
};


菜鸡杰又水了一道题 我以为我会双指针了 直到我遇到了这道题 梦醒了 晚安 晚安 加油陌生人!!!

leetcode844. 比较含退格的字符串(栈+双指针)相关推荐

  1. 【LeetCode844.比较含退格的字符串】——双指针法

    目录: 844.比较含退格的字符串 思考: 利用栈: 双指针法: 844.比较含退格的字符串 给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true .# 代 ...

  2. leetcode844 比较含退格的字符串(python)

    文章目录 844. 比较含退格的字符串 分析 代码(重构字符串(通过位置弹出)) 通过截图 代码(重构字符串(不断加入和弹出)) 通过截图 844. 比较含退格的字符串 给定 s 和 t 两个字符串, ...

  3. leetcode844. 比较含退格的字符串

    一:题目 二:上码 class Solution {public:/**思路:1.利用栈 我们将字符串中的单个元素都入栈 当遇到'#'的时候将将栈顶元素弹出*/bool backspaceCompar ...

  4. 844. 比较含退格的字符串

    文章目录 844. 比较含退格的字符串 思路--双指针 844. 比较含退格的字符串 844. 比较含退格的字符串 思路–双指针 准备两个指针 endS, endT 分别指向 S,T 的末位字符,再准 ...

  5. byte数组转字符串_leetcode刷题844比较含退格的字符串(带代码解析,带知识点回顾)...

    844. 比较含退格的字符串 难度:简单 第一:简单浏览一下题目 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果.# 代表退格字符. 注意:如果对空文 ...

  6. 减去字符串_leetcode刷题844比较含退格的字符串(带代码解析,带知识点回顾)

    844. 比较含退格的字符串 难度:简单 第一:简单浏览一下题目 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果.# 代表退格字符. 注意:如果对空文 ...

  7. LeetCode第 844 题:比较含退格的字符串(C++)

    844. 比较含退格的字符串 - 力扣(LeetCode) 最终比较的是有效字符串是否相等,所以关键就是如何获取有效字符串. 一开始的思路,类似求字符串的最长子串的思路,利用左右边界的移动,但是写了写 ...

  8. 每日一道leetcode(python)844. 比较含退格的字符串

    每日一道leetcode(python)844. 比较含退格的字符串 2021-09-05 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果. # 代表 ...

  9. 844. 比较含退格的字符串(双指针)

    844. 比较含退格的字符串 示例 1: 输入:s = "ab#c", t = "ad#c" 输出:true 解释:s 和 t 都会变成 "ac&qu ...

最新文章

  1. 【FFmpeg】便捷函数汇总(持续更新中...)
  2. 1,html常用标签学习
  3. 使用Xcode和Instruments调试解决iOS内存泄露
  4. 【PTVS+Theano+CPU/GPU】在windows下使用VS安装theano深度学习工具
  5. 关于 try catch 捕捉不到异常
  6. L3-029 还原文件 (30 分)-PAT 团体程序设计天梯赛 GPLT
  7. [NOIP2003普及组]麦森数(快速幂+高精度)
  8. java关系操作符==和equals()区别
  9. 转载:三种方式使得iOS应用能够在后台进行数据更新和下载
  10. OPENG 获取状态的一些枚举值
  11. centos系统添加桌面图标
  12. 传奇怎么设置不显示服务器,如何将传奇服务器未知神殿地图修改为不限制进出...
  13. 2016版excel_excel中yd是什么意思
  14. Linux学习入门-------------------------VMvare与镜像的安装与配置
  15. matlab弹簧阻尼系统论文,MATLAB系统仿真报告有阻尼受迫振动系统.doc
  16. Jersey框架二:Jersey对JSON的支持
  17. 计算机连接到网络通信介质的物理设备,计算机应用基础.doc
  18. 在无网络时使用Unity Hub
  19. 华北、华东、华南大家庭,我在这里等你
  20. 【SQLAlchemy】第1节:安装与引擎连接

热门文章

  1. EntityFramework的多种记录日志方式,记录错误并分析执行时间过长原因
  2. 哪一个不是linux常用的shell,Linux下查看使用的是哪种shell的方法汇总
  3. 140种Python标准库、第三方库和外部工具都有了
  4. 【QGIS入门实战精品教程】4.1:QGIS栅格数据地理配准完整操作流程
  5. Windows Phone 8开发环境搭建介绍
  6. 一篇文学会商用可编辑问卷表单制作【iVX 十二】
  7. 电梯里为什么放镜子?90%的人都不知道
  8. 一生只有43年,喜欢泡妹打架,却凭借一篇文章震惊世界,跻身一流数学家
  9. 学习爬虫限时只需9.9,还在犹豫什么?
  10. 一起读懂传说中的经典:受限玻尔兹曼机