CF255B Code Parsing
题目描述
小 Vitaly 喜欢各种各样的算法。今天他刚刚为你发明了一种新算法。Vitaly 的算法作用于一个只包含字符 $x$ 和 $y$ 的字符串 $s$,它运行中依次执行如下两种操作:
1. 在字符串中找到两个相邻的字符,其中第一个等于 $y$,第二个等于 $x$,并交换它们的位置。如果有多个符合条件的字符对,则选择最靠近字符串开头的那一对。
2. 在字符串中找到两个相邻的字符,其中第一个等于 $x$,第二个等于 $y$,并将它们从字符串中删除。如果有多个符合条件的字符对,则选择最靠近字符串开头的那一对。
新算法的输入为字符串 $s$,其工作方式如下:
1. 如果可以对字符串施加上述任意一种操作,转到算法的第 2 步。否则,停止算法执行并输出当前字符串。
2. 如果可以执行操作 1,则执行操作 1。否则,执行操作 2。执行操作后,回到算法的第 1 步。
现在 Vitaly 想知道,如果输入字符串 $s$,该算法最终会输出什么字符串。
输入格式
第一行输入一个非空字符串 $s$。
保证字符串仅由字符 $x$ 和 $y$ 组成,且字符串长度不超过 $10^{6}$。保证执行算法后输出的字符串不会为空。
输出格式
仅输出一行,即算法最终输出的字符串。
说明/提示
在第一个测试用例中,算法在第一步后就会结束,因为无法应用任何操作。因此,字符串不会改变。
在第二个测试用例中,变换过程如下:
1. 字符串 "yxyxy" 变成 "xyyxy";
2. 字符串 "xyyxy" 变成 "xyxyy";
3. 字符串 "xyxyy" 变成 "xxyyy";
4. 字符串 "xxyyy" 变成 "xyy";
5. 字符串 "xyy" 变成 "y"。
最终,我们得到字符串 "y"。
在第三个测试用例中,只进行一次操作:字符串 "xxxxxy" 变成 "xxxx"。因此,答案是字符串 "xxxx"。
由 ChatGPT 5 翻译