题解 | #【模板】栈#

【模板】栈

https://www.nowcoder.com/practice/104ce248c2f04cfb986b92d0548cccbf

s = []
num = int(input())
for i in range(num):
    a = input()
    if a[0:4] == 'push':
        s.append(int(a.split()[1]))
    else:
        if not s:
            print('error')
        else:
            print(s[-1])
            if a == 'pop':
                s.pop()

# 为什么别人的比我快100ms?
# import sys
# s = input()
# lines = sys.stdin.read().splitlines()
  
# def stack(lines):
#     arr = []
#     for i in lines:
#         if i == "pop":
#             pop = arr.pop() if len(arr) >= 1 else "error"
#             print(pop)
#         elif i == "top":
#             top = arr[-1] if len(arr) >= 1 else "error"
#             print(top)
#         else:
#             pushNum = i.split()
#             arr.append(pushNum[1])
              
# stack(lines)

上面是我自己写的,学一下ACM模式要怎么写,主要就是int(input()),还有split(),或者split(' ')。

另外输出就是print('error'),输出数值的话,就是print(s),print("hello",100,sep = ",",end = "")类似这种。

很关键的一点是:数组尽量用append增加,pop删除,否则很慢,会超时。(del(s[-1]的时间复杂度是O(n),pop()的复杂度是O(1),差太多啦!)

#日常刷题#
全部评论

相关推荐

抱抱碍事梨a:三点建议,第一点是建议再做一个项目,把自我介绍部分顶了,第二点是中南大学加黑加粗,第三点是建议加v详细交流
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务