首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

【算法千题案例】每日一练LeetCode打卡——102.比较含退格的字符串

提示: 1 <= s.length, t.length <= 200 s 和 t 只含有小写字母以及字符 ‘#’ ---- C#方法:重构字符串 将给定的字符串退格符和应当被删除的字符都去除,还原给定字符串的一般形式...用 栈 处理遍历过程,每次我们遍历到一个字符: 如果它是退格符,那么我们将栈顶弹出; 如果它是普通字符,那么我们将其压入栈。...= stackT.Pop()) return false; } return true; } } 执行结果 通过 执行用时:76 ms,在所有 C# 提交击败了...71.14%的用户 内存消耗:37.9 MB,在所有 C# 提交击败了10.70%的用户 ---- Java 方法:重构字符串 思路解析 将给定的字符串退格符和应当被删除的字符都去除,还原给定字符串的一般形式...用 栈 处理遍历过程,每次我们遍历到一个字符: 如果它是退格符,那么我们将栈顶弹出; 如果它是普通字符,那么我们将其压入栈

28510

【算法题解】 Day15 栈

具体地,我们用栈处理遍历过程,每次我们遍历到一个字符: 如果它是退格符,那么我们将栈顶弹出; 如果它是普通字符,那么我们将其压入栈。 for ch in s: if ch !...} } return ret.toString(); } }   方法二:双指针 思路 一个字符是否会被删掉,只取决于该字符后面的退格符...,而与该字符前面的退格符无关。...你可以认为输入字符串总是有效的;输入字符串没有额外的空格,且输入的方括号总是符合格式要求的。...),就是这个字符串应该出现的次数,我们根据这个次数和字符串构造出新的字符串并进栈 重复如上操作,最终将栈的元素按照从栈底到栈顶的顺序拼接起来,就得到了答案。

12620

【Leetcode -844.比较含退格的字符串 -1047.删除字符串的所有相邻重复项】

提示: 1 <= s.length, t.length <= 200 s 和 t 只含有小写字母以及字符 ‘#’ 思路:创建两个栈分别存放 s 字符串和 t 字符串的有效字符,如果是退格符,就出栈;...记录栈顶 int topS = 0, topT = 0; for (int i = 0; i < strlen(s); i++) { //如果是退格符...strcmp(stackS, stackT); } Leetcode -1047.删除字符串的所有相邻重复项 题目:给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们...示例: 输入:“abbaca” 输出:“ca” 解释: 例如,在 “abbaca” ,我们可以删除 “bb” 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。

8910

【Day17】Java算法刷题 【面试题 01.08. 零矩阵】 【844. 比较含退格的字符串】

零矩阵 题目描述: 编写一种算法,若M × N矩阵某个元素为0,则将其所在的行与列清零。...如果我们直接在遍历的过程填充,就会改变原始的矩阵,导致之后遍历到的 元素0 可能不属于原始的矩阵,而是前面填充得来的,这样就得不到想要的结果了。...所以这时候我们需要另外准备两个数组,分别代表需要填充 元素0 的行和列,我们遍历整个原始矩阵,当遇到 0,就将这个 元素0 所在矩阵的行和列做标记。...解题思路: 题目要求对给定的字符串进行处理,当字符串中出现‘#’退格符号,前面就需要删除一个普通字符,最终判断处理完的字符是否相等,输出答案。...我们完全可以巧妙地利用堆栈的结构,扫描字符串的每一个字符,正常的字符正常压入堆栈结构。 当遇到退格符号 # 我们就让栈顶元素出栈,这样就达到了退格的效果,非常简单就得到了我们想要的效果。

24530
领券