站外水题求助
  • 板块学术版
  • 楼主Huchangzhi
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/8/17 08:12
  • 上次更新2023/11/3 03:14:42
查看原帖
站外水题求助
1031975
Huchangzhi楼主2023/8/17 08:12

样例全对,最后3个点WA

文字输入

题目背景

   在文字输入的过程中,出现输入错误是不可避免的,所以需要给用户提供一个改正的方法。
我们的方法是这样的:用‘$’符号表示前一个字符无效,用‘#’符号表示本行之前输入的所有内容无效。

比如一个字符串“abcd$bcd”,它的实际内容是“abcbcd”,字符串“abc#abc$$d”的实际内容是“ad”。

注意:由于数据问题,请使用string读入。

输入

  第一行是一个整数n,表示这个文本文件的行数。   之后 n 行,每行一个长长的字符串(长度不会超过10000),其中就包括‘$’和‘#’这样的字符和一些英文字母,没有其它的字符。

输出

  输出共计n行,每个字符串一行。

样例

输出

2
abcd$bcd
abc#abc$$d

输入

abcbcd
ad

我的代码

#include <bits/stdc++.h>
using namespace std;
char z[200010];
int top = 1;
int main()
{
    int n;
    cin >> n;
    string s;
    for (int i = 1; i <= n; i++)
    {
        cin >> s;
        for (char r : s)
        {
            if (r == '$')
            {
                top--;
            }
            else if (r == '#')
            {
                top = 1;
            }

            else
            {
                z[top++] = r;
            }
        }
        printf("\0");
        for (int j = 1; j < top; j++)
        {
            printf("%c", z[j]);
        }
        printf("\n");
    }
    return 0;
}

2023/8/17 08:12
加载中...