题解 | #表示数字#
表示数字
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专栏练习梳理