题解 | #表示数字#

表示数字

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

# s = input()
# num = len(s)
# for i in s:
#     if i.isdigit():
#         s = s.replace(i, f"*{i}*")  # 不能直接替换原来的字符串,因为里面有相同的元素,涉及替换了多次存在多个星号的问题。
# print(s)



# 给一个空字符串,如果是字母就添加进去,如果是数字就添加 *,
s = input()
s = s.replace("*", "牛")
sn = ""
for i in s:
    if i.isdigit():
        sn += f"*{i}*"
    else:
        sn += i
sn = sn.replace("**", "") # 用 空字符串 替换掉 ** 字符串
sn = sn.replace("牛", "*")
print(sn)


首先想到的是在原有基础上直接替换生成副本字符串,但是后来debug后发现:如果有2个3的话,我就会替换了2次,有多个星号。多个星号不好处理

所以,直接看了题解。思路:
替换掉原字符串的 * 号为 ”牛“,
往空字符串中新增字符,如果数字就 *数字*,如果不是数字,直接添加,
替换掉 ** 为空字符串。
把牛牛替换回 *即可。
#数据仓库与数据分析实习#
OD专栏练习梳理 文章被收录于专栏

OD专栏练习梳理

全部评论
考察知识点: str.replace(),替换字符。 空字符串的逐层累加
点赞 回复 分享
发布于 2022-09-23 15:58 陕西

相关推荐

不愿透露姓名的神秘牛友
昨天 14:35
点赞 评论 收藏
分享
强大的马里奥:不太可能,我校计算机硕士就业率99%
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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