20年AB1解码java
P8706 [蓝桥杯 2020 省 AB1] 解码 - 洛谷
详细代码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
// 接收输入的字符串
char [] c = in.next().toCharArray();
// 接收 还原的字符串
StringBuilder sb =new StringBuilder();
// 挨个判断输入的字符串是数字还是字母
for(int i=0; i<c.length; i++) {
// 如果这个位置的字符是数字
if (c[i]>='1'&&c[i]<='9') {
// 将字符转换成数字
int k =c[i]-'0';
// 然后将上一个字母添加 k-1 次
for(int j=0; j<k-1;j++) {
sb.append(c[i-1]);
}
}else {
// 如果是字母就直接添加字母
// 在遇到字母的时候就已经添加了一次了
// 所以遇到字母后面的数字就需要少添加一次
sb.append(c[i]);
}
}
System.out.println(sb);
in.close();
}
}