Official

A - Yay! Editorial by nok0


初心者の方へ
  • プログラミングの学習を始めたばかりで何から手をつけるべきかわからない方は、まずは practice contest の問題A「Welcome to AtCoder」をお試しください。言語ごとに解答例が掲載されています。
  • また、プログラミングコンテストの問題に慣れていない方は、 AtCoder Beginners Selection の問題をいくつか試すことをおすすめします。
  • C++入門 AtCoder Programming Guide for beginners (APG4b) は、競技プログラミングのための C++ 入門用コンテンツです。

この問題には様々な方針が考えられますが、簡単な方針としては、for 文を用いて \(i=1,2,\ldots,N\) 番目の文字について、それ以外の文字と相異なるかを判定するというものが考えられます。文字が異なるかの判定には if 文を用いると良いでしょう。

また、各文字について調べるためには2 重の for 文が必要となります。実装例を参考にし、分からない場合は使っている言語のリファレンスも参考にしてください。

以下に、C++ 言語による正解例を記載します。

#include<bits/stdc++.h>
using namespace std;

int main(){
    string s;
    cin >> s;
    int n = s.size();
    for(int i = 0; i < n; i++){
        bool diff = true; 
        for(int j = 0; j < n; j++){
            if(i != j and s[i] == s[j]) diff = false;
        }
        if(diff == true) cout << i + 1 << endl;
    }
}

posted:
last update: