华为机试真题实战应用【算法代码篇】-简易压缩算法/一种字符串压缩表示的解压(附python和JAVA代码实现)

本文介绍了华为机试中的一种简易压缩算法,该算法将连续的小写字母压缩为数字加字母的形式。文章提供了解压该压缩字符串的方法,并给出了Java和Python两种语言的代码实现。读者将学习如何判断压缩字符串的合法性并进行解压操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

题目描述

思路解析

代码实现

Java

代码2

python

代码2


题目描述

有一种简易压缩算法:针对全部由小写英文字母组成的字符串,将其中连续超过两个相同字母的部分压缩为连续个数加该字母,其他部分保持原样不变。

例如:字符串“aaabbccccd”经过压缩成为字符串“3abb4cd”

请您编写解压函数,根据输入的字符串,判断其是否为合法压缩过的字符串

若输入合法则输出解压缩后的字符串,否则输出字符串“!error”来报告错误。

输入描述

输入一行,为一个ASCII字符串,长度不会超过100字符,用例保证输出的字符串长度也不会超过100字

输出描述

若判断输入为合法的经过压缩后的字符串,则输出压缩前的字符串;若输入不合法,则输出字符串

!error”

思路解析

简单字符串处理题目,遍历输入,根据当前字符类型判断:

    如果当前字符是数字,则继续查找直到当前指向的不是数字(比如10a),计算其数字的值num,然后在结果中加入num个当前字符,注意异常情况:

    3a4: 数字后没有字符
    3a4D:数字后的字符非小写字母
    2a3b:数字值小于等于2
  &n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林聪木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值