zoukankan      html  css  js  c++  java
  • [Algo] 175. Decompress String II

    Given a string in compressed form, decompress it to the original string. The adjacent repeated characters in the original string are compressed to have the character followed by the number of repeated occurrences.

    Assumptions

    • The string is not null

    • The characters used in the original string are guaranteed to be ‘a’ - ‘z’

    • There are no adjacent repeated characters with length > 9

    Examples

    • “a1c0b2c4” → “abbcccc”

    public class Solution {
      public String decompress(String input) {
        // Write your solution here
        if (input.length() == 0) {
          return input;
        }
        StringBuilder sb = new StringBuilder();
        int i = 0;
        char[] charArr = input.toCharArray();
        char prevChar = input.charAt(0);
        while (i < charArr.length) {
          char cur = charArr[i];
          if (Character.isLetter(cur)) {
            prevChar = cur;
            i += 1;
          } else if (Character.isDigit(cur)) {
            int num = cur - '0';
            if (num == 0) {
              i += 1;
            } else {
              while (i + 1 < charArr.length && Character.isDigit(charArr[i + 1])) {
                num = 10 * num + (charArr[i + 1] - '0');
                i += 1;
              }
              for (int j = 0; j < num; j++) {
                sb.append(prevChar);
              }
              i += 1;
            }
          }
        }
        return sb.toString();
      }
    }
    public class Solution {
      public String decompress(String input) {
        // Write your solution here
        char[] charArr = input.toCharArray();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < charArr.length; i++) {
          char cur = charArr[i++];
          int num = charArr[i] - '0';
          for (int j = 0; j < num; j++) {
            sb.append(cur);
          }
        }
        return sb.toString();
      }
    }
  • 相关阅读:
    【转】谈谈 JVM 内部锁升级过程
    TCP 和 UDP 协议简介
    《分布式系统原理介绍》读书笔记
    Paxos 协议简单介绍
    Lease 机制和 Quorum 机制
    HBase 学习二(最佳实践).
    HBase 学习一(基础入门).
    Spring 事务介绍
    《MySQL技术内幕:InnoDB存储引擎》读书笔记.
    数据库事务简介.
  • 原文地址:https://www.cnblogs.com/xuanlu/p/12340712.html
Copyright © 2011-2022 走看看