一个函数 | ||||||
| ||||||
Description | ||||||
现在用一个函数来处理一个字符串(该字符串只包含x和y)。 函数的两个操作如下。 1. 在字符串中找到两个连续的字符(可以不相邻),并且第一个字符是’y’,第二个字符是’x’,然后交换它们。如果一次存在多种满足该条件的连续字符,我们就找到最靠近字符串开始位置的那组进行操作。 2. 在字符串中找到两个连续的字符(可以不相邻),并且第一个字符是’x’,第二个字符是’y’, 然后从原串中将这两个字符删除。如果一次存在多种满足该条件的连续字符,我们就找到最靠近字符串开始位置的那组进行操作。 函数的运行步骤如下: Step1: 如果你对当前的字符串至少可以进行上面两个操作中的一个,就进入Step2,否则函数运行结束。 Step2:如果你可以进行1 操作就执行它。否则执行2操作1次,2操作结束后进入Step1. 请输出函数运行结束之后经过处理符串。 | ||||||
Input | ||||||
输入一个字符串,保证字符串不为空且仅由’x’和’y’组成。字符串长度为1~106。 | ||||||
Output | ||||||
输出函数返回值。 保证测试数据不会让返回值为空串。 | ||||||
Sample Input | ||||||
x yxyxy xxxxxxy | ||||||
Sample Output | ||||||
x y xxxxx | ||||||
Author | ||||||
曾卓敏 @hrbust 由题意就可以看出,不管是xy还是yx,全部可以消掉,但是xy是可以不相连的,所以可以用栈来模拟这个过程,如果栈为空,就入栈,若栈不空,则判断栈顶元素和当前字符是否相同,如果相同就入栈,不同就出栈
|
Hust oj 1677 一个函数(栈)
最新推荐文章于 2020-05-26 21:56:26 发布