问题标题: 酷町堂:求解4007

0
0
已解决
丁梓珩
丁梓珩
中级守护
中级守护

题目链接: 酷町堂:4007

请问4007为什么输出是错的

代码如下:

#include<iostream>
using namespace std;

string str;
char a;
int main(){
    getline(cin, str);
    while(true){
        cin >> a;
        if(a == 'S'){
            cout << str;
            break;
        }
        else if(a == 'D'){
            for(int i = 0; i < str.size(); i++){
                if(i % 2 == 1 && str[i] >= 'A' && str[i] <= 'Z'){
                    str.erase(i, 1);
                    i--;
                }
            }
        }
        else if(a == 'I'){
            for(int i = 1; i < str.size(); i++){
                if(i % 3 == 0 && str[i] >= 'a' && str[i] <= 'z'){
                    string t = "";
                    t += (char)(str[i] - 32);
                    str.insert(i, t);
                }
            }
        }
        else if(a == 'R'){
            string s = "";
            for(int i = 0; i < str.size(); i++){
                if(str[i] >= '0' && str[i] <= '9'){
                    s += str[i];
                }
            }
            int l = 0, r = s.size() - 1;
            while(l <= r){
                char tmp = s[l];
                s[l] = s[r];
                s[r] = tmp;
                l++, r--;
            }
        }
    }
    return 0;
}

题目链接:4007 字符加工厂


0
我要回答