2021-07-31 箱子问题

题意:侯同学助人为乐,帮同事搬家,把物品放进小箱子,再将小箱子放进大箱子,一段操作后侯同学忘了用几个箱子,请帮他算出箱子的个数?[]代表一个箱子,[]3代表3个箱子,[[]3]代表1个大箱子里放4个小箱子一共是4个箱子。


输入描述:
一行字符串boxea,代表箱子的摆放情况。(boxes长度len,2<=len<=10^6)
对于输入的箱子:
1、保证一定是完整的箱子[1,不会出现半个箱子[
2、保证箱子套箱子的层数dep,1<=dep<=10
3、[]x,2<=x<=9([]x见题意)
输出描述:
输出箱子的数量count。
1<=count<2^31


特殊样例
输入:[][][[[]3[]2]2]2
输出:28

import sys
from collections import deque

line = sys.stdin
line = line.strip()


q = deque()
cnt = 1
res = 0
total = 0
allTotal = 0
# 判断是不是平行
flag = False
for i in range(0, len(line) - 1):
    # 判断入不入栈
    if line[i] == ']':
        while q[-1] != '[':
            q.pop()
        q.pop()
    else:
        q.append(line[i])

    if line[i] == '[':
        res = 0
        flag = True
    if line[i] == ']':
        if not flag:
            res = total
        if line[i+1].isalnum():
            cnt = int(line[i+1])
            res = cnt * res + cnt
        else:
            res += 1
        if flag:
            total += res
        else:
            total = res
        flag = False

    if len(q) == 0:
        allTotal += total
        total = 0

# 如果结尾不是以数字而是 ] 结尾
if total != 0:
    allTotal += res
    allTotal += 1

print(allTotal)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 记得电影里有一个片段,当你搬家的时候有两个箱子,一个大箱子,一个小箱子,你会先搬哪个箱子呢?这是一个特别常见的生活...
    Dr魏阅读 1,146评论 0 1
  • 昨天到了一箱尿不湿,放在阳台消毒!今早婆婆把尿不湿拿出来放好,宝宝一看箱子空了,就开始把它从阳台往客厅里推,推到门...
    小金宝妈妈阅读 206评论 0 0
  • 看完赛德希尔·穆来纳森与埃尔德·沙菲尔合著的《稀缺》。他们在书中分三步介绍了稀缺对我们的影响: 一、 稀缺心态是一...
    微乴问阅读 470评论 1 1
  • 今天,要大家聊一聊我的一个小想法。 我呀,想给孩子做一个绘本,名字就暂定《纸箱子》,构思如下: 场景1:一辆小卡车...
    提灯小厮阅读 775评论 12 15
  • 把东西装进行李箱是对资源管理问题的最好比喻,我们每个人都有一个时间箱,要在里面装上工作,休闲和与家人共度的时光;我...
    丸子当家阅读 588评论 0 1

友情链接更多精彩内容