日拱一卒——LeetCode 844.比较含退格的字符串
大家好呀,今天为大家带来的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.比较含退格的字符串相关推荐
- leetcode 844. 比较含退格的字符串
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果. # 代表退格字符. 注意:如果对空文本输入退格字符,文本继续为空. 示例 1: 输入:S = &qu ...
- 2022-7-7 Leetcode 844.比较含退格的字符串
方法一:栈 class Solution {public:bool backspaceCompare(string s, string t) {string tmps = "", ...
- Leetcode 844. 比较含退格的字符串 解题思路及C++实现
解题思路: 使用两个栈a和b,分别存储字符串S和T对应的结果,然后再逐个比较栈a和b的元素,之后需要加一个判断是否会有某一个栈非空,如果有其中一个栈非空,则返回false,否则返回true. clas ...
- 每日一道leetcode(python)844. 比较含退格的字符串
每日一道leetcode(python)844. 比较含退格的字符串 2021-09-05 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果. # 代表 ...
- byte数组转字符串_leetcode刷题844比较含退格的字符串(带代码解析,带知识点回顾)...
844. 比较含退格的字符串 难度:简单 第一:简单浏览一下题目 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果.# 代表退格字符. 注意:如果对空文 ...
- 减去字符串_leetcode刷题844比较含退格的字符串(带代码解析,带知识点回顾)
844. 比较含退格的字符串 难度:简单 第一:简单浏览一下题目 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果.# 代表退格字符. 注意:如果对空文 ...
- 844. 比较含退格的字符串
文章目录 844. 比较含退格的字符串 思路--双指针 844. 比较含退格的字符串 844. 比较含退格的字符串 思路–双指针 准备两个指针 endS, endT 分别指向 S,T 的末位字符,再准 ...
- 844. 比较含退格的字符串(双指针)
844. 比较含退格的字符串 示例 1: 输入:s = "ab#c", t = "ad#c" 输出:true 解释:s 和 t 都会变成 "ac&qu ...
- leetcode系列-844.比较含退格的字符串
leetcode系列–第844题.比较含退格的字符串 给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true .# 代表退格字符.注意:如果对空文本输入退格字 ...
最新文章
- Spring学习-理解IOC和依赖注入
- ASP.NET编程中常用到的27个函数集
- 远程注入dll中注册热键
- 用Jmeter做微信小程序项目接口测试【案例】
- 苹果7plus元件分布图_苹果iphone7 plus手机拆解全过程评测 iphone7 plus拆机图解教程...
- SQL Servr 2008空间数据应用系列三:SQL Server 2008空间数据类型
- oracle自带split函数_Pandas 基本使用(三) — DataFrame.to_dict() 函数基本使用
- 移动语义(move semantic)和完美转发(perfect forward)
- 流浪不是我的初衷 ... ...
- TCP之Nagle算法延迟ACK
- ES6——Symbol
- linux basename学习
- 【Python】字符串的一些操作
- unicode汉字对照表
- Timesten安装
- java调用python实现校验一串字符串是否为单词
- php 正则 问号,正则表达式的问号需要怎样使用
- 微信公众号【黄小斜】和【Java技术江湖】
- 【C++11】包装器
- 精品课 - Python 基础
热门文章
- 成为职业游戏建模师该如何学习?
- 财经365独家:基建物业投资路线图
- 魔力鸭Ducky DK2108S 刷固件
- VS中调试QT项目报错合集
- 小米重要通知android,Android开发笔记——小米通知‘坑’ app的通知一直显示在不重要通知里 ......
- python模拟登录网站_Python爬虫之模拟登录wechat
- 如何使用Android原生接口,实现“应用双开”
- I - 后缀数组二·重复旋律2 HihoCoder - 1407
- 在网站上更改鼠标样式
- AB实验结果分析03 -指标提升不显著问题