洛谷 [蓝桥杯 2020 省 AB1] 解码

124 阅读1分钟

题目链接:P8706 [蓝桥杯 2020 省 AB1] 解码

题目描述

小明有一串很长的英文字母,可能包含大写和小写。

在这串字母中,有很多连续的是重复的。小明想了一个办法将这串字母表达得更短:将连续的几个相同字母写成字母 + 出现次数的形式。 例如,连续的 55a,即 aaaaa,小明可以简写成 a5(也可能简写成 a4aaa3a 等)。

对于这个例子:HHHellllloo,小明可以简写成 H3el5o2。为了方便表达,小明不会将连续的超过9个相同的字符写成简写的形式。

现在给出简写后的字符串,请帮助小明还原成原来的串。

输入格式

输入一行包含一个字符串。

输出格式

输出一个字符串,表示还原后的串。

样例 #1

样例输入 #1

H3el5o2

样例输出 #1

HHHellllloo

提示

对于所有评测用例,字符串由大小写英文字母和数字组成,长度不超过 100100。请注意原来的串长度可能超过 100100

蓝桥杯 2020 第一轮省赛 A 组 F 题(B 组 G 题)。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String s = scanner.next();
        int len = s.length();
        String str = "";
        for (int i = 0; i < len; i++) {
            char c = s.charAt(i);
            if (c >= '1' && c <= '9') {
                int tmp = (int) c - '1';
                for (int j = 0; j < tmp; j++) {
                    char charAt = s.charAt(i - 1);
                    str += charAt;
                }
            } else {
                str += c;
            }
        }
        System.out.println(str);
    }
}