[白俊]10809号:アルファベット検索
1644 ワード
📌 質問する
小文字のみからなる単語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
を逐字数字に変更します.この数字をS
のarr
文字目の要素が-1に変更するとi
に変更されます.このようにしてこそ、そのアルファベットが何回目に現れたかを知ることができます.S
のすべての要素が確認されれば、arr
を出力することができる.Reference
この問題について([白俊]10809号:アルファベット検索), 我々は、より多くの情報をここで見つけました https://velog.io/@qaer07/백준-10809번-알파벳-찾기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol