目录
题目
2066. 解码 - AcWing题库https://www.acwing.com/problem/content/2068/
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String s = input.nextLine();
StringBuilder ans = new StringBuilder();
int cur = 0;
while(cur < s.length()){
if (s.charAt(cur) >= 48 && s.charAt(cur) <= 57){
for(int i = 1; i < s.charAt(cur) - '0'; i++){
ans.append(s.charAt(cur - 1));
}
}else {
ans.append(s.charAt(cur));
}
cur++;
}
System.out.println(ans.toString());
}
}
AC结果
思路
遍历题目输入的字符串s,每遍历到一个字母则通过StringBuilder插入到ans中。若发现数字(例如:5),则再循环插入上一个字符4次。判断数字的标准是:'0'-'9' ASCII 为 48-57。最后得到ans再转换为String输出。