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

844.比较含退格的字符串

目录

  • 题目
  • 思路
  • 解法
  • 收获

题目

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

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

思路

如何解退格之后left-2又遇到退格的问题

解法

class Solution {
public:
    bool 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[i] == '#') {
                    skipS++, i--;
                } else if (skipS > 0) {
                    skipS--, i--;
                } else {
                    break;
                }
            }
            while (j >= 0) {
                if (T[j] == '#') {
                    skipT++, j--;
                } else if (skipT > 0) {
                    skipT--, j--;
                } else {
                    break;
                }
            }
            if (i >= 0 && j >= 0) {
                if (S[i] != T[j]) {
                    return false;
                }
            } else {
                if (i >= 0 || j >= 0) {
                    return false;
                }
            }
            i--, j--;
        }
        return true;
    }
};

作者:力扣官方题解
链接:https://leetcode.cn/problems/backspace-string-compare/solutions/451606/bi-jiao-han-tui-ge-de-zi-fu-chuan-by-leetcode-solu/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

收获

可以有while(true)或者while(i>0)然后满足条件可以break跳出循环。因为之前写了个while,但是因为会遇到多种情况,while出不来,又不能用if,因为if只会判断一次。这个while下面多条件判断的结构很好。


http://www.kler.cn/a/528812.html

相关文章:

  • 架构技能(四):需求分析
  • hot100_21. 合并两个有序链表
  • 4 [危机13小时追踪一场GitHub投毒事件]
  • 【3】阿里面试题整理
  • 基于STM32的阿里云智能农业大棚
  • 基于遗传优化GRNN和Hog特征提取的交通标志识别算法matlab仿真
  • 【大坑】使用element-ui弹窗$confirm自动弹出
  • OpenAI:人工智能领域的先锋力量
  • 【数据采集】案例02:基于Selenium采集豆瓣电影Top250的详细数据
  • Heptagon record 数据结构
  • SAP物料分类账相关后台配置、准备工作
  • 【token】【1】零基础token pipline快速实战
  • AI生成产品原型与设计稿:我的工具使用心得与推荐
  • Vue.js `Suspense` 和异步组件加载
  • 当WebGIS遇到智慧文旅-以长沙市不绕路旅游攻略为例
  • linux 函数 sem_init () 信号量、sem_destroy()
  • 【react+redux】 react使用redux相关内容
  • langchain 实现多智能体多轮对话
  • 什么情况下,C#需要手动进行资源分配和释放?什么又是非托管资源?
  • 无心剑七绝《深度求索》
  • 数据密码解锁之DeepSeek 和其他 AI 大模型对比的神秘面纱
  • 解锁Linux共享内存:进程通信的极速引擎
  • 人机交互系统实验二 图形用户界面的设计
  • 代码练习3
  • 知识图谱中如何做种子对齐?
  • 步进电机的型号和分类