似非プログラマーの雑多な日記

似非プログラマーの雑多な日記

「継続は力なり」の実証実験してます

【競プロ(AtCoder)】ABC044 : B - 美しい文字列 / Beautiful Strings《C++ ver.》

f:id:captaindream0502:20210810000601p:plain
C++_logo

ABC044:B - 美しい文字列 / Beautiful StringsをC++で解いたときの解答。

1. 問題

問題文
wを、英小文字のみからなる文字列とします。wが以下の条件を満たすならば、wを美しい文字列と呼ぶことにします。
  • どの英小文字も、w中に偶数回出現する。
文字列 w が与えられます。w が美しい文字列かどうか判定してください。
制約
  • 1≤∣w∣≤100
  • wは英小文字(a-z)のみからなる文字列である

2. 解答

#include <iostream>

using namespace std;

int main(){

    string w;
    cin >> w;

    sort(w.begin(), w.end());
    
    int count = 0;
    bool flag = true;

    for(int i = 0; i < w.size(); i++){
        if(i > 0 && w[i] != w[i-1]){
            if(count % 2 != 0){
                flag = false;
                break;
            }
            count = 0;
        }
        count++;
    }

    if(flag == true){
        cout << "Yes" << endl;
    }else{
        cout << "No" << endl;
    }
}

3. 所感

ゴリ押しの解法で我ながら実装が綺麗じゃない。iostreamしか使っていない(実際にはstirngとかも使われている)分ある意味綺麗な実装ではある。

以上