题解 | #表示数字#

表示数字

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

自己写的,最开始想遍历把每个数字前后都加上*,再删除**的,剩余的就应该满足条件了,但是发现给的字符串中也可能出现*,所以先把原始字符串中的*替换成了一般字符串中不会有的中文,再按上述方法计算,最后再把中文替换回 *

while True:
    try:
        s = input()
        sn = ''
        s = s.replace('*', '牛')
        for i in s:
            if i.isdigit():
                sn += '*' + i + '*'
            else:
                sn += i
        sn = sn.replace('**', '')
        print(sn.replace('牛', '*'))
    except:
        break

再记录下看到的re方法,方法很简单

import re
while True:
    try:
        print(re.sub('(\d+)', '*\g<1>*', input()))
    except:
        break
全部评论
那其实可以先在数字前后加上“牛”,最后删除“牛牛”再把“牛”替换成“*”
1 回复 分享
发布于 2023-12-18 15:24 浙江
re方法太牛了,就是不太懂,能详细解释下么?
点赞 回复 分享
发布于 2023-01-12 17:23 北京
tr循环体中不应该加个break么 不然不是无限循环么
点赞 回复 分享
发布于 2023-01-11 11:28 北京
通用的方法很好理解,借鉴了
点赞 回复 分享
发布于 2022-06-02 14:18
很好理解
点赞 回复 分享
发布于 2022-04-16 20:37
万一,字符串里面本身就有‘牛’这个字符串呢?怎么办呢
点赞 回复 分享
发布于 2022-03-30 15:07
大佬,第二种方法中'(\d+)', '*\g<1>*' 什么意思,多次匹配数字,后半段看不懂,求解释
点赞 回复 分享
发布于 2022-01-20 17:57

相关推荐

不愿透露姓名的神秘牛友
06-25 19:15
点赞 评论 收藏
分享
06-27 18:45
中山大学 Ruby
25届应届毕业生,来广州2个礼拜了,找不到工作,绝望了,太难过了…
应届想染班味:9爷找不到工作只能说明,太摆了或者太挑了。
点赞 评论 收藏
分享
每晚夜里独自颤抖:要求太多的没必要理
点赞 评论 收藏
分享
评论
67
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务