zoukankan      html  css  js  c++  java
  • 栈Stack

    class Stack:
        def __init__(self):
            self.items=[]
        def isEmpty(self):
            return self.items==[]
        def push(self,item):
            #添加元素进站
            self.items.append(item)
        def peek(self):
            #打印栈顶元素
            return self.items[len(self.items)-1]
        def pop(self):
            #从栈顶取出元素
            return self.items.pop()
        def size(self):
            #返回栈中元素的个数
            return len(self.items)

    栈的另一种实现是把列表的首端(index=0)作为栈顶一样可以实现Stack

    class Stack:
        def __init__(self):
            self.items=[]
        def isEmpty(self):
            return self.items==[]
        def push(self,item):
            #添加元素进站
            self.items.insert(0,item)
        def peek(self):
            #打印栈顶元素
            return self.items[0]
        def pop(self):
            #从栈顶取出元素
            return self.items.pop(0)
        def size(self):
            #返回栈中元素的个数
            return len(self.items)

    def parChecker(symbolString):
        #单一括号匹配函数
        s=Stack()
        balanced=True
        index=0
        #判断索引值和字符串的大小 ,当前是否匹配
        while index<len(symbolString) and balanced:
            symbol=symbolString[index]
            if symbol =="(":
                s.push(symbol)
            else:
                if s.isEmpty():
                    balanced=False
                else:
                    s.pop()
            index=index+1
        if balanced and s.isEmpty():
            return True
        else:
            return False

    print(parChecker("(()))"))

    def TYparChecker(symbolString):
        #多种类型括号匹配方法
        s=Stack()
        balanced=True
        index=0
        while index<len(symbolString) and balanced:
            symbol=symbolString[index]
            if symbol in '([{':
                s.push(symbol)
            else:
                if s.isEmpty():
                    balanced= False
                else:
                    top=s.pop()
                    if not matchs(top,symbol):
                        balanced=False
            index=index+1
        if balanced and s.isEmpty():
            return True
        else:
            return False
    
    def matchs(open,close):
        opens='([{'
        closers=')]}'
        return opens.index(open)==closers.index(close)

    print(TYparChecker("{{[()]}"))
  • 相关阅读:
    Mongo 配置文件 [www]
    网络上最完整的网络克隆教程
    perl操作MongoDB
    [C#项目开源] MongoDB 可视化管理工具 (2011年10月-至今)
    maven ClassNotFoundException: org.springframework.web.context.ContextLoader
    执行update操作的话,就会报“Connection is read-only. Queries leading to data modification are not allowed”的异常。
    解压war包
    删除文件夹
    查看端口是否被占用
    springmvc 注解
  • 原文地址:https://www.cnblogs.com/jzxs/p/11090280.html
Copyright © 2011-2022 走看看