@ninijia 在 Leetcode每日一题练习 ------ 3174. 清除数字 中发帖
从Leetcode 每日一题练习继续讨论:
3174. 清除数字
3174. Clear Digits
题解
本题每次在移除数字的时候也会移除离数字最近的左侧的非数字字符,则每次碰到数字时需要移除连续的数字和紧挨着数字左侧的连续的相同个数的非数字字符,如果按照正常的从左向右访问数组,则无法预知后面连续的数字的个数,则无法确定前面要删除的非数字个数,但如果从右向左访问数组,当遇到非数字字符时就一定可以知道右侧出现了多少个数字字符。则可以将本题看成一个栈问题,遇到数字字符入栈,遇到非数字字符就删掉字符并将一个数字出栈,如果栈高度为0则保留该非数字字符,后续被保留的字符继续在之前保留字符构成的字符串的前方拼接。由于具体的数字对本题无影响,因此只需要一个变量记录栈的高度,遇到非数字字符删掉字符并减少栈的高度即可。
代码
class Solution {
public:
string...