[白俊]10809号:アルファベット検索


📌 質問する


小文字のみからなる単語Sを与える.各アルファベットに単語が含まれている場合は、最初に表示された場所を含むプログラムを作成します.含まれていない場合は、-1を出力します.

📌 入力


1行目には単語Sがあります.単語の長さは100を超えず、アルファベットの小文字だけで構成されています.

📌 しゅつりょく


各アルファベットに対して、aが初めて現れる位置、bが初めて現れる位置...zが初めて現れる位置をスペースで区切る.
アルファベットが単語に含まれていない場合は、-1を出力します.単語の最初の字はゼロ位で、2番目の字は1位です.

📌 入力例



📌 言語:JAVA


📌 solution

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String S = scan.nextLine();
        scan.close();
        int[] arr = new int[26];

        for(int i = 0; i < arr.length; i++){
            arr[i] = -1;
        }
        for(int i = 0; i < S.length(); i++){
            char c = S.charAt(i);
            if(arr[c - 'a'] == -1){
                arr[c - 'a'] = i;
            }
            System.out.println(arr[c - 'a']);
        }
        for(int i = 0; i < arr.length; i++){
            System.out.println(arr[i]);
        }
    }
}

😎 に答える


 似たような問題はプログラマーのところで解決したのでしょうか...?とにかく似たような問題をしたようですが、解決した問題はたくさんあります.(私はずっと羽集線器に提出していましたが、提出した問題をベルにアップロードしませんでした…)
要するに、この問題はまずアルファベットの個数を出力する必要があるので、まずint型の配列を長さ26の配列に変えなければならない.そしてすべての要素を-1に変えます
  そしてfor句でSを逐字数字に変更します.この数字をSarr文字目の要素が-1に変更するとiに変更されます.このようにしてこそ、そのアルファベットが何回目に現れたかを知ることができます.Sのすべての要素が確認されれば、arrを出力することができる.