样例全对,最后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;
}