/**
* 844. 比较含退格的字符串
* @author wsq
* @date 2020/10/19
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。
注意:如果对空文本输入退格字符,文本继续为空。
示例 1:
输入:S = "ab#c", T = "ad#c"
输出:true
解释:S 和 T 都会变成 “ac”。
示例 2:
输入:S = "ab##", T = "c#d#"
输出:true
解释:S 和 T 都会变成 “”。
链接:https://leetcode-cn.com/problems/backspace-string-compare
*/
package com.wsq.leetcode;
public class BackspaceCompare {
/**
* 双指针
* 1. 从后向前记录 "#" 的数量
* 2.删除等数量的字符
* 3.不能删除并且不是"#"的字符需比较两者是否相同,不相同则返回false
* @param S
* @param T
* @return
*/
public boolean backspaceCompare(String S, String T) {
int i = S.length() - 1;
int j = T.length() - 1;
// #号的数目
int skipS = 0;
int skipT = 0;
while(i >= 0 || j >= 0){
while(i >= 0){
if(S.charAt(i) == '#'){
i--;
skipS++;
}else if(skipS > 0){
i--;
skipS--;
}else{
break;
}
}
while(j >= 0){
if(T.charAt(j) == '#'){
j--;
skipT++;
}else if(skipT > 0){
j--;
skipT--;
}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;
}
}
相关推荐
在MDK5.37版本中添加Complier Version 5( 解决Missing Compiler Version 5 )
本文章仅作为个人学习记录,方法也是从其他博主的博客中得到的,链接如下:二、Keil——Missing Compiler Version 5 和 core_cm3.c 问题解决 - YI颗白菜 - 博客园 (cnblogs.com) 问题描述 更新最新的keil版本(MDK5.37)后,在编译以前版本的工程文件时,发现出现了非常多的报错,在网上搜索之后发现原来时编译器版本不匹配的问题,即MDK5.37中使用的是Version 6版本的编译器,而缺少Version 5,对于以前编写的工
(字符串) 844. 比较含退格的字符串——【Leetcode每日一题】
844. 比较含退格的字符串 给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。 注意:如果对空文本输入退格字符,文本继续为空。
全面讲解电子齿轮比与脉冲数计算
什么是编码器分辨率。
844. 比较含退格的字符串
注意:需要设置自己的字符串循环以及总体的字符串循环,自己的字符串循环是为了处理退格符,有一个退格符需要前移一个,同时累计退格符个数,有n个退格符,就要额外再前移n个,只有当退格符个数为0,且当前不是退格符,则跳出自己的循环,两个字符串都跳出自己的循环后,然后去比较各自当前指针索引的字符是否一样。一.双指针法:一个字符是否会被删掉,只取决于该字符后面的退格符,而与该字符前面的退格符无关。设立新字符串,然后去遍历给定字符串,是普通字符,填到新的字符串里,是退格符,将新字符串的最后一个字符移除。
UCIe物理层 —— 逻辑协议 (2)
本章开始主要介绍UCIe协议第四章,物理层逻辑定义和规范。如其他的通信协议一样,接口的物理层包含两个部分,逻辑子层和电气子层。其中逻辑层主要负责:1.定义接口信号和时序2. 定义发送端如何将上层数据分发到各个物理通道以及接收端如何把从各个通道收到的数据恢复成byte stream(Flit)。3. Broken Lane的repair和remap。4. 链路初始化,训练(training)和电源状态管理/切换。5. 扰码Scrambling和training sequence的产生。
HRNet 【demo 复现过程】
Deep High-Resolution Representation Learning for Human Pose Estimation
比较含退格的字符串
比较含退格的字符串 给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。 注意:如果对空文本输入退格字符,文本继续为空。 示例 1: 输入:s = "ab#c", t = "ad#c"输出:true解释:s 和 t 都会变成 "ac"。 示例 2: 输入:s = "ab##", t = "c#d#"输出:true解释:s 和 ...
C++上机——2023年“信息与未来”小学生编程思维展示官方题解
本次活动前三题是“根据问题描述实现代码”类型的问题,题解和示例代码由人工智能GPT-4直接阅读题面后生成――只要熟悉C++的语法和基本的编程、调试,即可解决p1、p2、p3。后三题有一定的算法性,我们给出命题思路和一些可能的解法。注意:本题解是面向指导教师的;指导教师在讲解时可以根据学生掌握程度进行调整。
【Leetcode每日一题】844. 比较含退格的字符串|重构字符串/双指针
昨天的【Leetcode每日一题】27. 原地移除元素|神级理解双指针一文中,生动形象的为大家讲解如何理解双指针,受到了很好的反馈,今天趁热打铁,瑶瑶子为大家带来一道双指针的plus版本题目,会比昨天的难一点,但是本质和逻辑是一样的(就是两个人干活,男女搭配,干活不累!)
SAP-ABAP:在SAP系统中,COEP表(成本控制对象行项目表)详解
在SAP系统中,COEP表(成本控制对象行项目表)详解
COSMO-RS理论:流体相热力学预测的核心模型与技术突破
摘要:COSMO-RS模型通过量子化学计算分子表面电荷分布,实现了从微观量子尺度到宏观化工过程的热力学预测。该模型基于介电连续介质理论,将分子表面片段化处理,通过σ-剖面描述电荷分布,并计算片段间的静电失配能和氢键能。其核心算法通过自洽化学势方程求解活度系数,克服了传统模型依赖实验参数的局限。随着技术进步,模型引入了高阶描述符和色散力修正,提升了预测精度。在药物研发、化工分离等领域广泛应用,但仍存在对长程有序结构预测不足等局限性。该模型为复杂体系的热力学性质预测提供了重要理论工具。
力扣844 比较含退格的字符串--双指针
给定s和t两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回true。代表退格字符。如果对空文本输入退格字符,文本继续为空。trues 和 t 都会变成 "ac"。trues 和 t 都会变成 ""。falses 会变成 "c",但 t 仍然是 "b"。
基于AC算法的图像显著性检测及Matlab代码实现
以上是基于AC算法的图像显著性检测的Matlab代码实现。图像显著性检测是计算机视觉领域的一个重要任务,其目标是确定图像中最具有显著性的区域,即吸引人眼注意力的区域。图像显著性检测是计算机视觉领域的一个重要任务,其目标是确定图像中最具有显著性的区域,即吸引人眼注意力的区域。AC算法的原理基于人眼视觉系统的特性,人眼在观察图像时通常会先关注图像中的显著性区域,然后才会注意到其他细节。AC算法的原理基于人眼视觉系统的特性,人眼在观察图像时通常会先关注图像中的显著性区域,然后才会注意到其他细节。
【LeetCode844.比较含退格的字符串】——双指针法
【LeetCode844.比较含退格的字符串】——双指针法
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
STM32F407中文手册
STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。
LeetCode -844. 比较含退格的字符串(栈、双指针)
比较含退格的字符串 方法一(栈): 如果它是退格符,那么我们将栈顶弹出; 如果它是普通字符,那么我们将其压入栈中。 class Solution { public boolean backspaceCompare(String S, String T) { return build(S).equals(build(T)); } private String build(String str) { StringBuffer sb = new .
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
比较含退格的字符串 | LeetCode-844 | 双指针
比较含退格的字符串
Outlook Express 6 (OE6) for Win7/Win8/Win10
英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。
【栈 & 双指针】844. 比较含退格的字符串
844. 比较含退格的字符串 题目 844. 比较含退格的字符串 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。 注意:如果对空文本输入退格字符,文本继续为空。 示例 1: 输入:S = “ab#c”, T = “ad#c” 输出:true 解释:S 和 T 都会变成 “ac”。 示例 2: 输入:S = “ab##”, T = “c#d#” 输出:true 解释:S 和 T 都会变成 “”。 示例 3: 输入:S = “a##c”,
844. 比较含退格的字符串【模拟、双指针】
模拟法:分别遍历两个数组,如果遇到#,则慢指针回退一步,否则将当前数字放于慢指针处,最后比较两个两个字符串是否相等。两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回。的空间复杂度解决该问题吗?
844.比较含退格的字符串(双指针)
【代码】844.比较含退格的字符串(双指针)
leetcode题 844. 比较含退格的字符串(解法一:用双指针)
思路:一个字符是否会被删掉,只取决于该字符后面的退格符,而与该字符前面的退格符无关。因此当我们逆序地遍历字符串,就可以立即确定当前字符是否会被删掉。 具体地,我们定义 skip 表示当前待删除的字符的数量。每次我们遍历到一个字符: 若该字符为退格符,则我们需要多删除一个普通字符,我们让 skip 加 1; 若该字符为普通字符: 若 skip 为 0,则说明当前字符不需要删去; 若 skip 不为 0,则说明当前字符需要删去,我们让 skip 减 1。 这样,我们定义两个指针,分别指向两字符串的末
[leetcode 简单 双指针]844. 比较含退格的字符串
题目描述 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。 注意:如果对空文本输入退格字符,文本继续为空。 示例 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 = “#a#c” 输出:true 解释:S 和 T
双指针 | 844. 比较含退格的字符串
解法一:得到退格后的字符串,然后两两比较 解法二:双指针法 定义快指针和慢指针。快指针用于依次遍历,满指针用于存有效值并在原数组的基础上划分有效值边界。
【双指针】844. 比较含退格的字符串
844. 比较含退格的字符串
力扣844.比较含退格的字符串
【代码】力扣844.比较含退格的字符串。
力扣 844. 比较含退格的字符串---二法(栈与双指针)
844. 比较含退格的字符串 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。 注意:如果对空文本输入退格字符,文本继续为空。 示例 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 = “#a#c” 输出:true
1万+



被折叠的 条评论
为什么被折叠?



