Python一种字符串压缩表示的解压

liftword2个月前 (04-25)技术文章40
def decompress_q(s):
    i = 0
    n = len(s)
    decompressed = []
    
    while i < n:
        if s[i].isdigit():
            # 检查数字是否合法(至少2,且后面必须跟字母)
            if i + 1 >= n or not s[i+1].islower():
                return "Q | error"
            num = int(s[i])
            if num < 2:
                return "Q | error"
            char = s[i+1]
            decompressed.append(char * num)
            i += 2
        elif s[i].islower():
            # 直接添加字母
            decompressed.append(s[i])
            i += 1
        else:
            # 非法字符(如大写字母、符号等)
            return "Q | error"
    
    return ''.join(decompressed)

# 测试用例
input_str = input().strip()
result = decompress_q(input_str)
print(result)

解决思路

  1. 合法性检查

遍历字符串,检查是否有非法字符(如非小写字母和非数字)。

数字必须大于等于2,且后面必须紧跟一个小写字母。

不能有连续的数字(如12a是非法的,因为12会被视为一个数字12,但题目可能隐含数字为1位数)。

  1. 解压操作

逐个字符处理,遇到数字时,读取数字和紧随的字母,扩展为连续字母。

其他字符直接保留。


相关文章

老爸电脑上有个加密压缩包,我用Python给解开了

老爸说他有个照片文件夹打不开了,让我过去看看,一瞅,好家伙,加密压缩包尘封老照片呀。既然加密,没准还有意外收货。作为一个“精灵鬼”,这么有价值的数据,我必须帮老爸解开呀。寻找思路解密压缩包的思路是什么...

转换图片格式再也不用到处找工具了,用Python就好!

在日常开发和设计工作中,图片格式的转换是一项常见且重要的任务。Python提供了众多强大的图像处理库,其中Pillow库(PIL的分支)尤其适用于进行各种图片格式之间的转换。本文将带领刚入门的Pyth...

神级程序员教你如何用python制作一个牛逼的外挂

玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过如何做一个外挂呢?(当然用外挂不是那么道义哈,呵呵),那我们就来看一下如何用python来制作一个外挂。。。。我打开了4399小游戏...

Python-连续图片合成视频

前言很多时候,我们需要将图片直接转成视频。下面介绍用python中的OpenCV将进行多张图合成视频。cv2安装不要直接用pip install cv2,这会报错。有很多人建议用打开window自带的...