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();
      }
    }
  • 相关阅读:
    IOS之UIAlert​Controller
    IOS实现弹出菜单效果MenuViewController(背景 景深 弹出菜单)
    IOS之正则表达式
    死锁与递归锁
    线程与进程的一些应用
    开启线程的两种方式
    互斥锁
    进程的队列
    模拟抢票系统
    Python并发编程__多进程
  • 原文地址:https://www.cnblogs.com/xuanlu/p/12340712.html
Copyright © 2011-2022 走看看