题解 | 点击消除

点击消除

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消除该位置;如果不同,那么将当前位置字母加入列表中;

如果遇到了当前位置和后一位字母相同的情况,列表中的该位置会被消除,因此最后一位变为上一位不同的字母。如果后续因为消除又出现同样的字母,也会同样和最后一位比较。

综上,最后列表中的内容就是无法消除的最终内容。

全部评论

相关推荐

点赞 评论 收藏
分享
工科女的日常:真诚建议:别再用这种花哨的模板,可以看看我发的那个零经验找实习发帖子
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务