奇妙な文字を作成

12730 ワード

質問する



コード#コード#

#include <bits/stdc++.h>

using namespace std;

string solution(string s)
{
    cin.tie(NULL);
    ios_base::sync_with_stdio(false);
    string answer = "";
    int cnt = 0;

    queue<char> q;
    vector<char> v;
    for (int i = 0; i < s.size(); i++)
    {
        q.push((s[i]));
    }

    while (!q.empty())
    {
        if (q.front() == ' ')
        {
            v.push_back(q.front());
            q.pop();
            cnt = 0;
            continue;
        }
        if (cnt == 0 || cnt % 2 == 0)
        {
            if (q.front() >= 97 && q.front() <= 122)
            {
                v.push_back(q.front() - 32);
                q.pop();
                cnt++;
            }
            else if (q.front() >= 65 && q.front() <= 90)
            {

                v.push_back(q.front());
                q.pop();
                cnt++;
            }
            
        }
        else if (cnt % 2 != 0)
        {
            if (q.front() >= 97 && q.front() <= 122)
            {

                v.push_back(q.front());
                q.pop();
                cnt++;
            }
            else if (q.front() >= 65 && q.front() <= 90)
            {
                v.push_back(q.front() + 32);
                q.pop();
                cnt++;
            }
            
        }
    }

    for (int i = 0; i < v.size(); i++)
    {
        answer += v[i];
        
    }
    cout << answer << endl;
    return answer;
}
Queue資料構造を使用して表示します.cntインデックス番号、
抜け出した時は、大文字が元vpushpop小文字+32または-32(大文字)変更.