大家好呀,今天为大家带来的LeetCode的题目是LeetCode 844.比较含退格的字符串。算是一道比较基础的题目。

题目

分析

这道题目相对简单,主要就是将时间复杂度和空间复杂度降低下来。

解法一:重构字符串

最简单的思路,就是按照题目的描述,将这两个字符串变为一般形式,然后直接比较是否相等即可。

解法二:双指针

由于一个字符是否存活要取决于后面是否有退格符,所以我们只需要要逆序遍历字符串,然后就可以得到一般字符串然后比较是否相等。

代码实现

解法一:

public boolean backspaceCompare(String S, String T) {return build(S).equals(build(T));}public String build (String str){StringBuffer ans = new StringBuffer();int length = str.length();for(int i=0;i<length;i++){if(str.charAt(i)=='#'){if(ans.length()>0)ans.deleteCharAt(ans.length()-1);}else{ans.append(str.charAt(i));}}return ans.toString();}

解法二:

 public boolean backspaceCompare(String S, String T) {int i = S.length() - 1, j = T.length() - 1;int skipS = 0, skipT = 0;while (i >= 0 || j >= 0) {while (i >= 0) {if (S.charAt(i) == '#') {skipS++;i--;} else if (skipS > 0) {skipS--;i--;} else {break;}}while (j >= 0) {if (T.charAt(j) == '#') {skipT++;j--;} else if (skipT > 0) {skipT--;j--;} else {break;}}if (i >= 0 && j >= 0) {if (S.charAt(i) != T.charAt(j)) {return false;}} else {if (i >= 0 || j >= 0) {return false;}}i--;j--;}return true;}

最后

  • 如果觉得看完有收获,希望能给我点个赞,这将会是我更新的最大动力,感谢各位的支持
  • 欢迎各位关注我的公众号【java冢狐】,专注于java和计算机基础知识,保证让你看完有所收获,不信你打我
  • 如果看完有不同的意见或者建议,欢迎多多评论一起交流。感谢各位的支持以及厚爱。

日拱一卒——LeetCode 844.比较含退格的字符串相关推荐

  1. leetcode 844. 比较含退格的字符串

    给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果. # 代表退格字符. 注意:如果对空文本输入退格字符,文本继续为空. 示例 1: 输入:S = &qu ...

  2. 2022-7-7 Leetcode 844.比较含退格的字符串

    方法一:栈 class Solution {public:bool backspaceCompare(string s, string t) {string tmps = "", ...

  3. Leetcode 844. 比较含退格的字符串 解题思路及C++实现

    解题思路: 使用两个栈a和b,分别存储字符串S和T对应的结果,然后再逐个比较栈a和b的元素,之后需要加一个判断是否会有某一个栈非空,如果有其中一个栈非空,则返回false,否则返回true. clas ...

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

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

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

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

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

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

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

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

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

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

  9. leetcode系列-844.比较含退格的字符串

    leetcode系列–第844题.比较含退格的字符串 给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true .# 代表退格字符.注意:如果对空文本输入退格字 ...

最新文章

  1. Spring学习-理解IOC和依赖注入
  2. ASP.NET编程中常用到的27个函数集
  3. 远程注入dll中注册热键
  4. 用Jmeter做微信小程序项目接口测试【案例】
  5. 苹果7plus元件分布图_苹果iphone7 plus手机拆解全过程评测 iphone7 plus拆机图解教程...
  6. SQL Servr 2008空间数据应用系列三:SQL Server 2008空间数据类型
  7. oracle自带split函数_Pandas 基本使用(三) — DataFrame.to_dict() 函数基本使用
  8. 移动语义(move semantic)和完美转发(perfect forward)
  9. 流浪不是我的初衷 ... ...
  10. TCP之Nagle算法延迟ACK
  11. ES6——Symbol
  12. linux basename学习
  13. 【Python】字符串的一些操作
  14. unicode汉字对照表
  15. Timesten安装
  16. java调用python实现校验一串字符串是否为单词
  17. php 正则 问号,正则表达式的问号需要怎样使用
  18. 微信公众号【黄小斜】和【Java技术江湖】
  19. 【C++11】包装器
  20. 精品课 - Python 基础

热门文章

  1. 成为职业游戏建模师该如何学习?
  2. 财经365独家:基建物业投资路线图
  3. 魔力鸭Ducky DK2108S 刷固件
  4. VS中调试QT项目报错合集
  5. 小米重要通知android,Android开发笔记——小米通知‘坑’ app的通知一直显示在不重要通知里 ......
  6. python模拟登录网站_Python爬虫之模拟登录wechat
  7. 如何使用Android原生接口,实现“应用双开”
  8. I - 后缀数组二·重复旋律2 HihoCoder - 1407
  9. 在网站上更改鼠标样式
  10. AB实验结果分析03 -指标提升不显著问题