Repeatedly remove all adjacent, repeated characters in a given string from left to right.

No adjacent characters should be identified in the final string.

Examples

  • "abbbaaccz" → "aaaccz" → "ccz" → "z"
  • "aabccdc" → "bccdc" → "bdc"
public class Solution {
public String deDup(String input) {
// Write your solution here
char[] charArr = input.toCharArray();
LinkedList<Character> stack = new LinkedList<>();
for (int i = 0; i < charArr.length; i++) {
char cur = charArr[i];
if (!stack.isEmpty() && stack.peekFirst() == cur) {
while (i + 1 < charArr.length && charArr[i] == charArr[i + 1]) {
i += 1;
}
stack.pollFirst();
} else {
stack.offerFirst(cur);
}
}
char[] res = new char[stack.size()];
for (int i = res.length - 1; i >= 0; i--) {
res[i] = stack.pollFirst();
}
return new String(res);
}
}

最新文章

  1. 16、ASP.NET MVC入门到精通——MVC过滤器
  2. IOS网络第四天 -网络文件上传(0923略)
  3. Spring -配置集合属性
  4. poj 2985 The k-th Largest Group 树状数组求第K大
  5. PLSQL_性能优化系列16_Oracle Tuning Analyze优化分析
  6. view的onFinishInflate()何时调用的?
  7. Oracle 生成随机密码
  8. DTrace patch for Python 2.7.x and 3.x
  9. SQL复习四(完整性约束)
  10. IOS对话框UIAlertView
  11. tcp/ip详解 卷1 -- 协议概述
  12. Wireshark初步入门
  13. 简单sql注入学习
  14. 通过修改注册表设置windows环境变量
  15. SDP(11):MongoDB-Engine功能实现
  16. Pthread 用法笔记
  17. 解决Mysql命令行输入密码闪退问题
  18. python with as的用法
  19. [学习笔记]FWT——快速沃尔什变换
  20. CSS命名方式=》BEM

热门文章

  1. sping--事务
  2. 4 ~ express ~ 划分模块开发
  3. Atomic系列类整体介绍
  4. python 奇淫技巧之自动登录 哔哩哔哩
  5. 关于spring cloud “Finchley.RC2”版本在spring cloud config中的ArrayIndexOutOfBoundsException
  6. LA_4730 Kingdom 并查集+树状数组
  7. [题解] LuoguP4389 付公主的背包
  8. python函数-函数进阶
  9. VS2019企业版产品密钥
  10. 流程引擎表单引擎的常见问题技术交流-关于广州xx公司对驰骋BPM提出