首页 > 编程语言 >常见面试算法题-报文解压缩

常见面试算法题-报文解压缩

时间:2024-04-02 19:29:17浏览次数:29  
标签:pre mulit 示例 res 报文 解压缩 面试 输入

 题目描述

  • 为了提升数据传输的效率,会对传输的报文进行压缩处理。
  • 输入一个压缩后的报文,请返回它解压后的原始报文。
  • 压缩规则:n[str],表示方括号内部的 str 正好重复 n 次。
  • 注意 n 为正整数(0 < n <= 100),str只包含小写英文字母,不考虑异常情况。

输入描述:

输入压缩后的报文:

1)不考虑无效的输入,报文没有额外的空格,方括号总是符合格式要求的;

2)原始报文不包含数字,所有的数字只表示重复的次数 n ,例如不会出现像 5b 或 3[8] 的输入;

输出描述:

解压后的原始报文

注:

1)原始报文长度不会超过1000,不考虑异常的情况

示例 1   输入输出示例仅供调试,后台判题数据一般不包含示例

输入

3[k]2[mn]

输出

kkkmnmn

说明

k 重复3次,mn 重复2次,最终得到 kkkmnmn

示例2  输入输出示例仅供调试,后台判题数据一般不包含示例

输入

3[m2[c]]

输出

mccmccmcc

说明

m2[c] 解压缩后为 mcc,重复三次为 mccmccmcc

以下代码为本人原创,可以供大家参考,若有不足之处,感谢指出!!!!

word = input()
stack, res, mulit = [], '', 0
for i in word:
    if i == '[':
        stack.append((res, mulit))
        mulit, res = 0, ''
    elif i == ']':
        pre_res, pre_mulit = stack.pop()
        res = pre_res + pre_mulit*res
    elif '0' <= i <= '9':
        mulit = mulit*10+int(i)
    else:
        res += i
print(res)

标签:pre,mulit,示例,res,报文,解压缩,面试,输入
From: https://blog.csdn.net/YW2019/article/details/137285687

相关文章

  • 刷题《面试经典150题》(第4天)
    学习目标:刷完面试经典150题链接:面试经典150题学习内容:串联所有单词的子串(困难)→滑动窗口组合(中等)→回溯最大子数组和(中等)→Kadane算法将二叉搜索树变平衡(中等)→平衡二叉树数组中的第K个最大元素(中等)→堆搜索插入位置(简单)→二分查找搜索二维矩阵(中等)→二......
  • 关于EF延时加载的面试题
    publicasyncTask<ActionResult>GetData(){vardata=(fromleftdatainGetLeft()joinrightdatainGetRight()onleftdata.Idequalsrightdata.Idintotempdatafrommatchdataintempdata.DefaultIfE......
  • BetterZip2024功能强大、操作便捷且用户体验优秀的Mac端解压缩软件
    作为一名软件专家,对于市面上各类软件都有较为深入的了解,下面介绍的是一款适用于Mac系统的解压缩软件——BetterZip,将从其功能特点、使用方法、用户体验及适用人群等方面进行详细介绍。BetterZip5-安装包绿色版下载如下:https://wm.makeding.com/iclk/?zoneid=60187首先是功......
  • 2024前端vue面试问题以及答案
    Vuex相关问题Vuex是什么,它解决了什么问题?Vuex是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex的核心概念有哪些?State:存储所有组件的状态。Getters:类似于计算属......
  • Android程序员必备的面试技巧!这五个快速码住!
    前言“程序员必备的面试技巧,就像是编写一段完美的代码一样重要。在面试战场上,我们需要像忍者一样灵活,像侦探一样聪明,还要像无敌铁金刚一样坚定。只有掌握了这些技巧,我们才能在面试的舞台上闪耀光芒,成为那个令HR们心动的程序猿!”Android程序员在面试时,除了需要具备扎实的......
  • GitHub上标星120k的Java进阶面试教程等!(建议收藏
    转发+关注,然后私信回复关键字“888”即可获得我精心整理的《Java开源项目合集》资料八、《JavaFamily》==============【互联网一线大厂面试+学习指南】进阶知识完全扫官。 部分目录:九、《interview_internal_reference》==================================2......
  • 2024最新分享我的面经总结:Java面试技术点攻略(九大核心专题
    关于操作系统这一部分,其实问的内容并不多,主要是因为这一部分问来问去也都是那么几个同样的问题,例如线程通信,线程与进程区别,进程调度算法以及虚拟内存、物理内存等。所以,在这一方面,我也整理了一些相对核心的内容。核心三:MySQL=========MySQL就更不用多说了,数据库不问......
  • 2024最新一线互联网大厂常见高并发面试题解析
    面试官:临界区是什么?答:临界区用来表示一种公共资源或者说是共享资源,可以被多个线程使用。但是每一次,只能有一个线程使用它,一旦临界区资源被占用,其他线程要想使用这个资源,就必须等待。比如,在一个办公室里有一台打印机,打印机一次只能执行一个任务。如果小王和小明同时需要打......
  • 【Java跳槽面试必备】2024年最新八股文
    【前言】网上各种面试八股文太多太多,但我今年找了好几个都是很久很久以前的老面试题,老文档了,和我出去面试市场上面试官问的问题基本上不一样了,可以说被打了一个措手不及,浪费了好几个机会,回来又找了好一些资料,以及结合自己最近的面试情况总结了一些心得免费分享给大家!虽然只有几本......
  • Java面试题-12Zookeeper
    1、ZK节点数据Zookeeper提供一个多层级的节点命名空间(节点称为znode)。与文件系统不同的是,这些节点都可以设置关联的数据,而文件系统中只有文件节点可以存放数据而目录节点不行。Zookeeper为了保证高吞吐和低延迟,在内存中维护了这个树状的目录结构,这种特性使得Zookeeper不能用......