本周Leetcode问题-06.28

做题真是做得很开心,特别是做着做着就半夜了的时候,本周按照Leetcode上的前几届contest找题,在下面给出两道:

394Decode String

Given an encoded string, return it's decoded string.

The encoding rule is: k[encoded_string], where the encoded_string inside the square brackets is being repeated exactly k times. Note that k is guaranteed to be a positive integer.

You may assume that the input string is always valid; No extra white spaces, square brackets are well-formed, etc.

Furthermore, you may assume that the original data does not contain any digits and that digits are only for those repeat numbers, k. For example, there won't be input like 3a or 2[4].

Examples:

s = "3[a]2[bc]", return "aaabcbc".
s = "3[a2[c]]", return "accaccacc".
s = "2[abc]3[cd]ef", return "abcabccdcdcdef"

emmmm,我理解这是一道很典型的使用栈结构的题,有这么几个东西需要处理,首先比如读入数字100,需要把1,0,0转换为一整个数字,其次读入字符时,我把它合并成了字符串,然后碰到右括号时进行处理,此时栈大概是这样子的:

                  ‘一个数字    [    一个字符串’

处理成一个新的字符串并压入。

        if (len(s)==0):
            return ''
        result=''
        stacklength=len(s)
        stack=['']*stacklength
        index=0
        tmpstr=''
        num=0
        for i in s:
            if (i.isdigit()):       压入数字
                stack[index]=i
                if (index!=0 and stack[index-1].isdigit()):
                    stack[index-1]=stack[index-1]+stack[index]    将1,0,0这种的处理成100
                elif (index!=0 and stack[index-1]!='['):   
                    index+=1
                else:                   这里处理得不是很好,在每个数字前面如果没有字符串加了一个空字符‘’
                    stack[index+1]=i
                    stack[index]=''
                    index+=2
            elif (i=='['):           碰到 [ 直接读入就行了
                stack[index]=i
                index+=1
            elif (i!=']'):       碰到字符一个一个将其拼接为字符串
                stack[index]=i
                if (index!=0 and stack[index-1]!='['):
                    stack[index-1]=stack[index-1]+stack[index]
                else:
                    index+=1
            else:    然后找到num[string]这种格式,返回stringstringstring......的字符串
                num=int(stack[index-3])  就是这里处理有点问题,数字在2[b2[a]]与2[2[a]]的位置有点不一样
                tmpstr=stack[index-1]
                stack[index-4]+=num*tmpstr
                index-=3

        return stack[0]

Leetcode有意思的一点是你兴高采烈通过了例子的代码未必能最终过,因为他准备一堆刁钻的输入来测试你,所以啊,碰到列表记得空列表,碰到整数记得零以及负数,还有大数据量样本,考量你的算法复杂度,当然了,就在一次次错误中学习吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值