LeetCode 1047. Remove All Adjacent Duplicates In String
1047. Remove All Adjacent Duplicates In String(删除字符串中的所有相邻重复项)
链接:https://leetcode-cn.com/problems/remove-all-adjacent-duplicates-in-string/
题目:
给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。
在 S 上反复执行重复项删除操作,直到无法继续删除。
在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。
示例:
输入:"abbaca"
输出:"ca"
解释:
例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。
提示:
1 <= S.length <= 20000
S 仅由小写英文字母组成。
思路:
我这里借助了栈,把字母塞进去,如果下一个和上一个相同就出栈,不然就入栈,最后借助stringbuffer转置一下,生成字符串。内存超过100%,但是时间超过30%,就很烦。
(idea改变了我的代码规范.......)
代码:
1 public static String removeDuplicates(String S) { 2 char[] ch = S.toCharArray(); 3 Stack stack = new Stack(); 4 int i = 0; 5 while (i < ch.length) { 6 if (stack.empty()) { 7 stack.push(ch[i]); 8 } else if (stack.peek().equals(ch[i])) { 9 stack.pop(); 10 } else { 11 stack.push(ch[i]); 12 } 13 i++; 14 } 15 16 StringBuilder sb = new StringBuilder(); 17 while (!stack.empty()) { 18 sb.append(stack.pop()); 19 } 20 return sb.reverse().toString(); 21 }
转载于:https://www.cnblogs.com/blogxjc/p/11220403.html
LeetCode 1047. Remove All Adjacent Duplicates In String相关推荐
- leetcode 1047. Remove All Adjacent Duplicates In String | 1047. 删除字符串中的所有相邻重复项(Java)
题目 https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string/ 题解 简单题,不写思路了,一看就明白. class ...
- LeetCode 26 Remove Duplicates from Sorted Array [Array/std::distance/std::unique] c++
LeetCode 26 Remove Duplicates from Sorted Array [Array/std::distance/std::unique] <c++> 给出排序好的 ...
- [leetcode]83.Remove Duplicates from Sorted List
题目 Given a sorted linked list, delete all duplicates such that each element appear only once. Exampl ...
- [勇者闯LeetCode] 83. Remove Duplicates from Sorted List
[勇者闯LeetCode] 83. Remove Duplicates from Sorted List Description Given a sorted linked list, delete ...
- leetcode算法题--Reverse Words in a String
原题链接:https://leetcode.com/problems/reverse-words-in-a-string/ class Solution {public:string reverseW ...
- DELETE ADJACENT DUPLICATES FROM语句的深入研究及应用
DELETE ADJACENT DUPLICATES FROM 语句,我们知道他的基本功能是:删除相邻行的重复数据. 但是他最终保留哪一行数据呢? 下面看看一个Demo: DATA : BEGIN O ...
- LeetCode:Remove Nth Node From End of List 移除链表倒第n项
2019独角兽企业重金招聘Python工程师标准>>> 1.题目名称 Remove Nth Node From End of List(移除链表中倒数第n项) 2.题目地址 http ...
- LeetCode 19. Remove Nth Node From End of List
LeetCode 19. Remove Nth Node From End of List Solution1:我的答案 并不算是最优解法. /*** Definition for singly-li ...
- 数据结构与算法 | Leetcode 19. Remove Nth Node From End of List
原文链接:https://wangwei.one/posts/jav... 前面,我们实现了 两个有序链表的合并 操作,本篇来聊聊,如何删除一个链表的倒数第N个节点. 删除单链表倒数第N个节点 Lee ...
最新文章
- LaTeX 简介与安装
- cmake中添加 -g编译选项
- [codevs 3273] 两圆的交
- codeproject上的一款分页控件
- 使用aSpotCat控制您的Android应用权限
- vba执行linux命令,如何使用vba的shell()运行参数的.exe?
- 05-sqlyog的安装与基本使用
- 设计模式 - 访问者模式
- android system_server中的dump_Android 10.0系统启动之SystemServer进程(二)
- 题解 LGOJ P4168 【[Violet]蒲公英】
- 2.第一个页面amp;amp;分辨率和rpx
- carlife android 无线,carlife为什么不能无线连接 不能无线连接解决方法
- 软件测试电商web项目如何描述,测试web项目实战
- 第三次作业(尤心心)
- 网站设计| 网站设计模板素材
- TOM邮箱,那个陪我走过20多年的邮箱
- Linux 两个服务器之间测试传输速度,测试两台服务器之间的网络带宽
- 宽带认证失败连接服务器无响应,路由器宽带账号认证失败的解决办法
- ASP.NET Core MVC_Tag Helper
- java(jdk 1.8 64位)连接中控考勤机