2 条题解

  • 2
    @ 2024-10-20 19:09:57

    一道比较简单的模拟题,从后往前进行遍历,当遇到删除字符 bbBB 时,记录下来,当遇到其他字符时根据记录情况进行删除。

    #include <stdio.h>
    #include <iostream>
    #include <string.h>
    using namespace std;
    const int N = 1e6 + 9;
    char ai[N];
    
    int main() {
        int t, sum1, sum2;
        scanf("%d", &t);
        while(t --) {
            sum1 = 0;
            sum2 = 0;
            scanf("%s", ai);
            int len = strlen(ai);
            for(int i = len - 1; i >= 0; i --) {
                if(ai[i] == 'b') sum1 ++;
                if(ai[i] == 'B') sum2 ++;
                if(sum1 > 0 && ai[i] >= 'a' && ai[i] <= 'z' && ai[i] != 'b') {
                    ai[i] = '0';
                    sum1 --;
                }
                if(sum2 > 0 && ai[i] >= 'A' && ai[i] <= 'Z' && ai[i] != 'B') {
                    ai[i] = '0';
                    sum2 --;
                }
            }
    
            for(int i = 0; i < len; i ++) {
                if(ai[i] != '0' && ai[i] != 'b' && ai[i] != 'B') {
                    printf("%c", ai[i]);
                }
            }
            printf("\n");
        }
        return 0;
    }
    

小小美,你不要再乱动我的电脑啦!!!

信息

ID
1017
时间
1000ms
内存
256MiB
难度
6
标签
递交数
61
已通过
18
上传者