美文网首页
栈解析字符串

栈解析字符串

作者: madao756 | 来源:发表于2020-03-08 12:45 被阅读0次

    0X00 模板题目

    使用栈去解析字符串的一个特征是:

    • 最后栈中只剩下一个元素最后那个元素就是答案
    class Solution:
        def parseTernary(self, expression: str) -> str:
            # 首先因为我们人去做也是从右往左去做
            # 用栈去解析字符串
            # 所以这个栈也是从右往左
    
            stack = []
            conditonState = False
            for i in range(len(expression)-1, -1, -1):
                c = expression[i]
                if c == ":": continue
                elif c == "?":
                    conditonState = True
                else:
                    if conditonState:
                        if c == "T":
                            res = stack.pop()
                            # pop 错误答案
                            stack.pop()
                            # 将 res 重新 append 进去
                            stack.append(res)
                        else:
                            stack.pop()
                        conditonState = False
                    else:
                        stack.append(c)
            
            return stack[-1]
    

    0X01 注意事项

    注意解析的方向, 像上面个题目是从右向左, 因为我们人去做也是从右向左

    0X02 相关题目

    相关文章

      网友评论

          本文标题:栈解析字符串

          本文链接:https://www.haomeiwen.com/subject/rmsddhtx.html