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相关推荐

  1. leetcode 1047. Remove All Adjacent Duplicates In String | 1047. 删除字符串中的所有相邻重复项(Java)

    题目 https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string/ 题解 简单题,不写思路了,一看就明白. class ...

  2. 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++> 给出排序好的 ...

  3. [leetcode]83.Remove Duplicates from Sorted List

    题目 Given a sorted linked list, delete all duplicates such that each element appear only once. Exampl ...

  4. [勇者闯LeetCode] 83. Remove Duplicates from Sorted List

    [勇者闯LeetCode] 83. Remove Duplicates from Sorted List Description Given a sorted linked list, delete ...

  5. leetcode算法题--Reverse Words in a String

    原题链接:https://leetcode.com/problems/reverse-words-in-a-string/ class Solution {public:string reverseW ...

  6. DELETE ADJACENT DUPLICATES FROM语句的深入研究及应用

    DELETE ADJACENT DUPLICATES FROM 语句,我们知道他的基本功能是:删除相邻行的重复数据. 但是他最终保留哪一行数据呢? 下面看看一个Demo: DATA : BEGIN O ...

  7. LeetCode:Remove Nth Node From End of List 移除链表倒第n项

    2019独角兽企业重金招聘Python工程师标准>>> 1.题目名称 Remove Nth Node From End of List(移除链表中倒数第n项) 2.题目地址 http ...

  8. LeetCode 19. Remove Nth Node From End of List

    LeetCode 19. Remove Nth Node From End of List Solution1:我的答案 并不算是最优解法. /*** Definition for singly-li ...

  9. 数据结构与算法 | Leetcode 19. Remove Nth Node From End of List

    原文链接:https://wangwei.one/posts/jav... 前面,我们实现了 两个有序链表的合并 操作,本篇来聊聊,如何删除一个链表的倒数第N个节点. 删除单链表倒数第N个节点 Lee ...

最新文章

  1. LaTeX 简介与安装
  2. cmake中添加 -g编译选项
  3. [codevs 3273] 两圆的交
  4. codeproject上的一款分页控件
  5. 使用aSpotCat控制您的Android应用权限
  6. vba执行linux命令,如何使用vba的shell()运行参数的.exe?
  7. 05-sqlyog的安装与基本使用
  8. 设计模式 - 访问者模式
  9. android system_server中的dump_Android 10.0系统启动之SystemServer进程(二)
  10. 题解 LGOJ P4168 【[Violet]蒲公英】
  11. 2.第一个页面amp;amp;分辨率和rpx
  12. carlife android 无线,carlife为什么不能无线连接 不能无线连接解决方法
  13. 软件测试电商web项目如何描述,测试web项目实战
  14. 第三次作业(尤心心)
  15. 网站设计| 网站设计模板素材
  16. TOM邮箱,那个陪我走过20多年的邮箱
  17. Linux 两个服务器之间测试传输速度,测试两台服务器之间的网络带宽
  18. 宽带认证失败连接服务器无响应,路由器宽带账号认证失败的解决办法
  19. ASP.NET Core MVC_Tag Helper
  20. java(jdk 1.8 64位)连接中控考勤机

热门文章

  1. python:Unicode字符编码
  2. js怎么控制textarea滚动条定位在光标的位置
  3. catia数控加工01
  4. ​嘉沃资产 | 量化多岗位招聘(全职+实习)
  5. 如何安全可控的使用USB存储设备
  6. int float double char 所占字节数及数字范围之间的关系
  7. FPGA基于Tri Mode Ethernet MAC实现UDP通信 提供3套工程源码和技术支持
  8. django之跨表查询及添加记录
  9. mysql存储过程创建表
  10. 动画般Git History查看工具