C#LeetCode刷题之#844-比较含退格的字符串(Backspace String Compare)
问题
该文章的最新版本已迁移至个人博客【比特飞】,单击链接 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)相关推荐
- 每日一道leetcode(python)844. 比较含退格的字符串
每日一道leetcode(python)844. 比较含退格的字符串 2021-09-05 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果. # 代表 ...
- byte数组转字符串_leetcode刷题844比较含退格的字符串(带代码解析,带知识点回顾)...
844. 比较含退格的字符串 难度:简单 第一:简单浏览一下题目 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果.# 代表退格字符. 注意:如果对空文 ...
- 减去字符串_leetcode刷题844比较含退格的字符串(带代码解析,带知识点回顾)
844. 比较含退格的字符串 难度:简单 第一:简单浏览一下题目 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果.# 代表退格字符. 注意:如果对空文 ...
- 日拱一卒——LeetCode 844.比较含退格的字符串
大家好呀,今天为大家带来的LeetCode的题目是LeetCode 844.比较含退格的字符串.算是一道比较基础的题目. 题目 分析 这道题目相对简单,主要就是将时间复杂度和空间复杂度降低下来. 解法 ...
- 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 .# 代表退格字符.注意:如果对空文本输入退格字 ...
- LeetCode每日一题 844. 比较含退格的字符串
题目链接 思路 class Solution {public:bool backspaceCompare(string S, string T) {int n1 = S.size();int n2 = ...
- 2022-7-7 Leetcode 844.比较含退格的字符串
方法一:栈 class Solution {public:bool backspaceCompare(string s, string t) {string tmps = "", ...
最新文章
- 一些设计思想的汇集(2)
- hdu 1054(最小顶点覆盖)
- 什么是服务器信息怎么看,怎么查看服务器信息
- jquery.cookie 使用文档,$.cookie() 文档教程, js 操作 cookie 教程文档。
- Yearn正在评估恢复yDAI池的方式
- 程序员创业其实相比其他行业也有一些优势
- 湖州机器人上课时间_【倒计时5天】燃到炸!湖州吾悦广场10月30日开业狂欢指南,请收下...
- java doget 返回json_HttpClient调用doGet、doPost、JSON传参及获得返回值
- Spark 系列(十)—— Spark SQL 外部数据源
- 统计信号处理基础——检测理论
- oracle卸载客户端,oracle11g客户端如何完全卸载
- X-Pacific / Elasticsearch-ESClientRHL
- 苹果电脑mysql_MacBook 安装 MySQL 5.7.29(新手都看得懂的安装教程)
- 广义相对论-学习记录1-第一章-历史回顾
- Photoshop设计中用羽化消除边缘锯齿
- VMware打开.vmx没反应
- (JS)统计重复个数
- 用idea将一个java文件打包成可执行jar包并能正确运行
- java保存时间到数据库_java new date 保存到数据库时间不对
- Canvas入门教学(3)图片与文字的绘制