以下の内容はhttps://drken1215.hatenablog.com/entry/2024/06/09/024807より取得しました。


AtCoder ABC 357 B - Uppercase and Lowercase (7Q, 灰色, 200 点)

文字列の大文字・小文字変換もできるようにしていきたい。

問題概要

英大文字または英小文字からなる文字列  S が与えられる。

大文字の個数が小文字の個数よりも多い場合は、すべて大文字に変換し、そうでない場合はすべて小文字に変換して出力せよ。

考えたこと

まずは普通に、英大文字の個数と、英小文字の個数を数えた。それをもとに、処理を分岐した。

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

int main() {
    string S;
    cin >> S;
    
    int N = S.size();
    int ko = 0;
    for (auto c : S) {
        if (c >= 'a' && c <= 'z') ++ko;
    }
    int oo = N - ko;
    
    if (oo > ko) {
        for (int i = 0; i < N; ++i) {
            if (S[i] >= 'a' && S[i] <= 'z') S[i] += (int)('A') - 'a';
        }
    } else {
        for (int i = 0; i < N; ++i) {
            if (S[i] >= 'A' && S[i] <= 'Z') S[i] -= (int)('A') - 'a';
        }
    }
    
    cout << S << endl;
}



以上の内容はhttps://drken1215.hatenablog.com/entry/2024/06/09/024807より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14