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

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编写脚本批量处理图片。我们将使用Pillow库来缩放、裁剪和压缩图片,并使用MD5哈希值来重命名输出文件。通过本文的学习,您将学习如何使用Python快速自动化处理大量图...

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

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

我做了个 AI 神器,模糊图片变清晰,4倍无损放大,极简且好用

乔布斯说得对,用户不需要你给出几百个选择,而是需要一个对的选择。极简不是一种美学,而是产品设计的最高境界。一,找图难图片,是社交媒体最重要的内容类型之一。不过因为服务器负载,以及高昂的带宽成本,开发者...

一日一技:用Python实现找到图像的大小(分辨率)

用Python来实现图像的大小(分辨率)在这节中,我们来学习如何实现jpeg图像的分辨率,不需使用python的模块不过,要理解下面的示例,您应该了解以下Python编程主题:Python函数Pyth...

Opencv-python之图像的缩放

函数:cv2.resize() 说明:缩放就是改变图片的大小,这个函数改变图片的长和宽,或者按一定比例进行变化。简单例子:代码如下:import cv2 #导入图片 img = cv2.imread(...