https://kamacoder.com/problempage.php?pid=1064
双指针法,从后向前遍历:
借用一个list,从后向前遍历,碰到数字就换“number”存到对应索引上:
def numTostr(s: str): s_list = list(s) i = 0 for char in s: if '0' <= char <= '9': s_list[i] = "number" else: s_list[i] = char i += 1 return ''.join(s_list) if __name__ == "__main__": s = input() print(numTostr(s))
知识点:str.isdigit()函数的使用:
可以把:
if '0' <= char <= '9':
改为
if char.isdigit() :
isdigit()
是 Python 字符串类型(str
)的一个方法,用于判断字符串是否由数字字符组成。它返回一个布尔值:如果字符串中的所有字符都是数字字符(即 '0' 到 '9'),则返回 True
;否则,返回 False
。
语法:
str.isdigit()
参数:
- 无:
isdigit()
方法不接受任何参数。
返回值:
True
:如果字符串中的所有字符都是数字字符,且字符串非空。False
:如果字符串中包含非数字字符(比如空格),或字符串为空。
注意事项:
isdigit()
判断的是字符是否是数字,而不关心是否是数字的有效表示(例如负号、浮动点等)。- 与
isnumeric()
的区别:isnumeric()
方法的判断范围比isdigit()
更广泛,它还可以处理一些其他的数字字符(如分数符号、罗马数字等)。而isdigit()
仅限于纯数字字符(如 0-9)。