华为机试96-表示数字

题目描述
将一个字符中所有出现的数字前后加上符号“*”,其他字符保持不变
注意:输入数据可能有多行
输入描述:
输入一个字符串

输出描述:
字符中所有出现的数字前后加上符号“*”,其他字符保持不变

示例1
输入
Jkdi234klowe90a3
输出
Jkdi*234*klowe*90*a*3*

 

参考:

双指针

while True:
    try:
        num = list(input().strip())
        res = []
        n = len(num)
        i = 0
        j = 0
        while i < n:
            if num[i].isdigit():
                res.append('*')
                res.append(num[i])
                j = i+1
                while j < n:
                    if num[j].isdigit():
                        res.append(num[j])    #如果是数字,继续填入
                        j += 1
                    else:
                        break    #不是数字,退出
                i = j
                res.append('*')
            else:
                res.append(num[i])
                i += 1
        print(''.join(list(map(str,res))))  
  
    except:
        break 

执行结果: 答案正确:恭喜!您提交的程序通过了所有的测试用例 用例通过率: 100.00% 运行时间: 21ms 占用内存: 3496KB

posted @ 2020-09-03 11:07  Andy_George  阅读(215)  评论(0编辑  收藏  举报