题解 | #表示数字#

表示数字

https://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6

import sys

for line in sys.stdin:
    s = ''
    line = line.strip()
    n = len(line)

    if n==1:#如果字符串的长度为1,判断是否为数字,是数字则前后加*
        if line[0].isdigit():
            s = '*'+line+'*'
        else:
            s = line
    else:
        for i in range(n):
            if i==0 and line[i].isdigit():#如果当前字符为第一个字符且为数字
                if line[i+1].isdigit():#后一个字符也是数字,则只在前面加*
                    s += ('*'+line[i])
                else:#后一个字符不是数字,前后都加*
                    s += ('*'+line[i]+'*')
            elif i==(n-1) and line[i].isdigit():#如果当前字符为最后一个字符且为数字
                if line[i-1].isdigit():#前一个字符为数字,只在后面加*
                    s += (line[i]+'*')
                else:#前一个字符不是数字,前后都加*
                    s += ('*'+line[i]+'*')
            elif line[i].isdigit():
                if line[i-1].isdigit() and line[i+1].isdigit():
                    s += line[i]
                elif not line[i-1].isdigit() and line[i+1].isdigit():#当前字符为数字,且前一个字符不是数字,后一个字符是数字,只在前面加*
                    s += ('*'+line[i])
                elif line[i-1].isdigit() and not line[i+1].isdigit():#当前字符为数字,且前一个字符也是数字,后一个字符不是数字,只在后面加*
                    s += (line[i]+'*')
                else:#当前字符为数字,前后字符都不是数字,前后都加*
                    s += ('*'+line[i]+'*')
            else:#当前字符不是数字,不加*
                s += line[i]
    
    print(s)

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务