题解 | 点击消除
点击消除
https://www.nowcoder.com/practice/8d3643ec29654cf8908b5cf3a0479fd5
import sys for line in sys.stdin: a = line.split() res = [] for i in a[0]: if res and res[-1] == i: res.pop() else: res.append(i) if res: print(''.join(res)) else: print(0)
简单的python解题思路:
要寻找字符串中消除的最终结果,本质上要思考两点:
1.当前位置的字母和后一位字母是否相同?
2.如果存在消除,消除位置前后的字母是否相同?
因此,我们可以借助一个新的列表来记录字符串中的元素,遍历字符串:
1.如果列表为空,那么将当前位置字母加入列表中,不做任何操作;
2.如果列表非空,比较列表最后一位和当前位置是否相同,如果相同,说明列表中该位置可以被消除,使用pop消除该位置;如果不同,那么将当前位置字母加入列表中;
如果遇到了当前位置和后一位字母相同的情况,列表中的该位置会被消除,因此最后一位变为上一位不同的字母。如果后续因为消除又出现同样的字母,也会同样和最后一位比较。
综上,最后列表中的内容就是无法消除的最终内容。