【Java】文字列の前・後から文字を取得(B - A to Z String)
解いた問題
AtCoderの「B - A to Z String」
提出した回答
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String S = sc.next(); sc.close(); int num_a = 0;//Aが先頭から何番目か for (int i = 0; i < S.length(); i++) { int tmp = S.charAt(i); if (tmp == 'A') { num_a = i+1; break; } } int num_z = 0;//Zが先頭から何番目か for (int i = S.length()-1; 0 < i; i--) { int tmp = S.charAt(i); if (tmp == 'Z') { num_z = i+1; break; } } System.out.println(num_z - num_a +1); } }
Aは前から、Zは後ろから数えて、それぞれ1番初めにヒットした位置を記録し、差を取った。
for文は1つにまとめることができそうだが、こちらの方が処理が見やすく、まとめても計算量はあまり変わらない(と思う2N→N?)ので、上記で提出した。
TODO
- 他のA,B問題を解く
おわり。。