问题

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/4030 访问。

给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。

输入:S = "ab#c", T = "ad#c"

输出:true

解释:S 和 T 都会变成 “ac”。

输入:S = "ab##", T = "c#d#"

输出:true

解释:S 和 T 都会变成 “”。

输入:S = "a##c", T = "#a#c"

输出:true

解释:S 和 T 都会变成 “c”。

输入:S = "a#c", T = "b"

输出:false

解释:S 会变成 “c”,但 T 仍然是 “b”。

提示:

  • 1 <= S.length <= 200
  • 1 <= T.length <= 200
  • S 和 T 只含有小写字母以及字符 '#'。

Given two strings S and T, return if they are equal when both are typed into empty text editors. # means a backspace character.

Input: S = "ab#c", T = "ad#c"

Output: true

Explanation: Both S and T become "ac".

Input: S = "ab##", T = "c#d#"

Output: true

Explanation: Both S and T become "".

Input: S = "a##c", T = "#a#c"

Output: true

Explanation: Both S and T become "c".

Input: S = "a#c", T = "b"

Output: false

Explanation: S becomes "c" while T becomes "b".

Note:

  • 1 <= S.length <= 200
  • 1 <= T.length <= 200
  • S and T only contain lowercase letters and '#' characters.

示例

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/4030 访问。

public class Program {public static void Main(string[] args) {var S = "ab#c";var T = "ad#c";var res = BackspaceCompare(S, T);Console.WriteLine(res);S = "a#c";T = "b#cd";res = BackspaceCompare2(S, T);Console.WriteLine(res);Console.ReadKey();}private static bool BackspaceCompare(string S, string T) {var stackS = GetStack(S);var stackT = GetStack(T);if(stackS.Count != stackT.Count) return false;for(var i = 0; i < stackS.Count; i++) {if(stackS.ElementAt(i) != stackT.ElementAt(i))return false;}return true;}private static Stack<char> GetStack(string S) {var stack = new Stack<char>();foreach(var c in S) {if(c == '#') {if(stack.Count != 0) stack.Pop();} else {stack.Push(c);}}return stack;}private static bool BackspaceCompare2(string S, string T) {var sb1 = GetStringBuilder(S);var sb2 = GetStringBuilder(T);return sb1.ToString() == sb2.ToString();}private static StringBuilder GetStringBuilder(string S) {var sb = new StringBuilder();for(var i = 0; i < S.Length; ++i) {if(S[i] == '#') {if(sb.Length > 0) sb.Remove(sb.Length - 1, 1);} else sb.Append(S[i]);}return sb;}}

以上给出2种算法实现,以下是这个案例的输出结果:

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/4030 访问。

True
False

分析:

设 S 和 T 两个单词中最长的单词的字符数为 n,那么显而易见,以上2种算法的时间复杂度均为:  。

C#LeetCode刷题之#844-比较含退格的字符串​​​​​​​(Backspace String Compare)相关推荐

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

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

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

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

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

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

  4. 日拱一卒——LeetCode 844.比较含退格的字符串

    大家好呀,今天为大家带来的LeetCode的题目是LeetCode 844.比较含退格的字符串.算是一道比较基础的题目. 题目 分析 这道题目相对简单,主要就是将时间复杂度和空间复杂度降低下来. 解法 ...

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

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

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

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

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

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

  8. LeetCode每日一题 844. 比较含退格的字符串

    题目链接 思路 class Solution {public:bool backspaceCompare(string S, string T) {int n1 = S.size();int n2 = ...

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

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

最新文章

  1. 一些设计思想的汇集(2)
  2. hdu 1054(最小顶点覆盖)
  3. 什么是服务器信息怎么看,怎么查看服务器信息
  4. jquery.cookie 使用文档,$.cookie() 文档教程, js 操作 cookie 教程文档。
  5. Yearn正在评估恢复yDAI池的方式
  6. 程序员创业其实相比其他行业也有一些优势
  7. 湖州机器人上课时间_【倒计时5天】燃到炸!湖州吾悦广场10月30日开业狂欢指南,请收下...
  8. java doget 返回json_HttpClient调用doGet、doPost、JSON传参及获得返回值
  9. Spark 系列(十)—— Spark SQL 外部数据源
  10. 统计信号处理基础——检测理论
  11. oracle卸载客户端,oracle11g客户端如何完全卸载
  12. X-Pacific / Elasticsearch-ESClientRHL
  13. 苹果电脑mysql_MacBook 安装 MySQL 5.7.29(新手都看得懂的安装教程)
  14. 广义相对论-学习记录1-第一章-历史回顾
  15. Photoshop设计中用羽化消除边缘锯齿
  16. VMware打开.vmx没反应
  17. (JS)统计重复个数
  18. 用idea将一个java文件打包成可执行jar包并能正确运行
  19. java保存时间到数据库_java new date 保存到数据库时间不对
  20. Canvas入门教学(3)图片与文字的绘制

热门文章

  1. 主窗体相关的知识点 winform
  2. 抽象 java 1614868764
  3. 草稿selenium显示等待
  4. css 弹性盒子200304
  5. TDengine安装
  6. 一文读懂 IPv4 到 IPv6 的过渡技术
  7. 根据个人亲身进阶架构师经历系统构建20大进阶架构师专题!
  8. Oracle-day03 上
  9. Android开发(1):随机绘制彩色实心圆
  10. 25k英里高速建48个充电走廊,美国电动汽车产业迎来春天