たいちっち

競技プログラミングをしています

【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問題を解く

 

おわり。。