public class RemoveAllAdjacentDuplicatesInString {
/*
解法一:栈
*/
public String removeDuplicates(String S) {
Stack<Character> stack=new Stack<>();
for (char c:S.toCharArray()){
if (stack.isEmpty()||c!=stack.peek())
stack.push(c);
else
stack.pop();
}
StringBuilder stringBuilder=new StringBuilder();
for (Character character:stack)
stringBuilder.append(character);
return stringBuilder.toString();
}
/*
解法二:StringBuilder模拟栈。
*/
public String removeDuplicates2(String S) {
StringBuilder stringBuilder=new StringBuilder();
int length=0;
for (char c:S.toCharArray()){
if (length!=0&&c==stringBuilder.charAt(length-1))
stringBuilder.deleteCharAt(length-- -1);
else {
stringBuilder.append(c);
length++;
}
}
return stringBuilder.toString();
}
}

最新文章

  1. PHP 判断点是否在多边形内
  2. iOS 动画绘制线条颜色渐变的折线图
  3. hdu 1559 最大子矩阵
  4. 广播Broadcast Receiver
  5. 更新引用google的cdn外部jQuery核心库JS文件
  6. socket初级使用(客户端)
  7. android开发 BaseAdapter中getView()里的3个参数是什么意思
  8. SVN 中trunk、branches、tags
  9. ZOJ-3725 Painting Storages 动态规划
  10. DRL之:策略梯度方法 (Policy Gradient Methods)
  11. 关于ASCII、GB231、GBK、UTF-8/UTF8、ANSI、unicode的学习笔记
  12. MAC 上搭建lua环境
  13. vs2010调试快捷键
  14. 一个简单链表的C++实现
  15. pojg487-3279电话号码转换(字符映射)
  16. Android 的 SDK Manager 无法启动 闪退解决方法
  17. 24.Django路由规则
  18. css左侧固定宽度右侧自适应
  19. Python Scrapy项目创建(基础普及篇)
  20. Centos设置防火墙与开放访问端口

热门文章

  1. k8s集群搭建 2019
  2. 第五周周二练习:实验 5 Spark SQL 编程初级实践
  3. Java的十三个设计模式
  4. elasticsearch入门及安装
  5. &lt;LinkedList&gt; 160
  6. vijos2054 SDOI2019 热闹的聚会与尴尬的聚会
  7. zr2019暑期高端峰会AB组十测
  8. Error running &#39;xxx&#39;: Command line is too long. Shorten command line for xxx
  9. 团队作业第五次—项目冲刺-Day2
  10. Java开发:字符串切割split函数——切割符转码注意事项