程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

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

hfteth 2025-04-24 00:38:50 技术文章 19 ℃
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. 解压操作

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

其他字符直接保留。


Tags:

最近发表
标签列表