回答編集履歴
1
ソースにコメントを追記
answer
CHANGED
@@ -25,23 +25,29 @@
|
|
25
25
|
BufferedReader b = new BufferedReader(new InputStreamReader(System.in));
|
26
26
|
|
27
27
|
String input = b.readLine();
|
28
|
-
int pos = 0;
|
29
28
|
|
29
|
+
int pos = 0; // substringの開始位置
|
30
|
+
|
30
31
|
for (int i = 0; i < input.length(); i++) {
|
31
32
|
|
33
|
+
// 使用できる文字がなくなったら、出力をやめる
|
32
34
|
if(pos == ALPHABET.length()) break;
|
33
35
|
|
34
36
|
// 1文字ずつ取り出す
|
35
37
|
int num = Integer.parseInt(input.substring(i, i + 1));
|
36
38
|
|
39
|
+
// substring()終了位置設定
|
37
40
|
int endPos = pos + num;
|
38
41
|
|
39
42
|
if (endPos > ALPHABET.length()) {
|
43
|
+
// 文字を取り出す際に取り出す終了位置がALPHABETの文字数を超える場合(z以降を取得しようとする場合)は、最後のzまでを取得する
|
40
44
|
endPos = ALPHABET.length();
|
41
45
|
}
|
46
|
+
|
42
|
-
|
47
|
+
// 定数ALPHABETから、開始位置と終了位置で文字を抽出し出力する
|
43
48
|
System.out.println(ALPHABET.substring(pos, endPos));
|
44
49
|
|
50
|
+
// 次の開始位置を設定
|
45
51
|
pos = endPos;
|
46
52
|
}
|
47
53
|
|