首页 > 其他 > 详细

[Algo] 175. Decompress String II

时间:2020-02-21 14:30:26      阅读:50      评论:0      收藏:0      [点我收藏+]

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();
  }
}

 

[Algo] 175. Decompress String II

原文:https://www.cnblogs.com/xuanlu/p/12340712.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!