zoukankan      html  css  js  c++  java
  • [LC] 82. Remove Adjacent Repeated Characters IV

    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);
      }
    }
  • 相关阅读:
    My first blog!
    Elasticsearch安装 + Head插件安装 + Bigdesk插件安装
    泛型-反射-注解
    JFinal自定义FreeMarker标签
    Hadoop集群中节点角色定义
    HBase
    MapReduce
    HDFS
    Hadoop基本概念
    HTTP浅析
  • 原文地址:https://www.cnblogs.com/xuanlu/p/12330552.html
Copyright © 2011-2022 走看看