华为机试HJ96 表示数字

HJ96 表示数字-Python

题目

在这里插入图片描述

解题思路

1、有多组输入,需要循环
2、字符串挨个拿出,判断是否为数字。是数字,暂时保存的一个字符串中;不是数字,如果数字暂存字符串有内容,则前后加星号,先合并,再处理当前的非数字字符。最后多个字符为数字的话,最后再处理一次。

代码

def func():
    s = input()
    
    # 结果字符串
    res = ""
    # 保存找到的数字类型字符
    nc = ""
    
    for c in s:
        # 如果当前是数字类型字符,暂时保存
        if "0" <= c <= "9":
            nc += c
            continue
        # 每遇到非数字类型字符,处理一次
        else:
            # 如果有暂时储存的数字类型字符
            if len(nc) > 0:
                # 一次性前后加星号合入结果字符串
                res += "*" + nc + "*"
                nc = ""
            # 合入当前的非数字类型字符串
            res += c
    # 最后的字符处理完,如果还有数字,结尾再处理一次
    if len(nc) > 0:
        res += "*" + nc + "*"
    print(res)

while True:
    try:
        func()
    except:
        break

结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值