wp231957 发表于 2022-11-21 09:10:29

空格替换

本帖最后由 wp231957 于 2022-11-21 09:11 编辑

要求,使用python
要求,不要使用正则模块
要求,一个字符串中含有不定空格,要把这些不规则空格统一替换成一个空格
比如a       b          c          d       e      f
输出a b c d e f

tommyyu 发表于 2022-11-21 09:16:39

本帖最后由 tommyyu 于 2022-11-21 09:27 编辑

x = input()
for i in range(len(x), 0, -1): x = x.replace(i * ' ', ' ')
print(x)

wp231957 发表于 2022-11-21 09:35:37

tommyyu 发表于 2022-11-21 09:16


吃怀疑的态度运行了你的代码
不可思议的是居然符合要求
那个i乘以空格是神马鬼,没看懂

tommyyu 发表于 2022-11-21 09:36:43

wp231957 发表于 2022-11-21 09:35
吃怀疑的态度运行了你的代码
不可思议的是居然符合要求
那个i乘以空格是神马鬼,没看懂

把 i个空格 替换成 1个空格

wp231957 发表于 2022-11-21 09:39:35

tommyyu 发表于 2022-11-21 09:36
把 i个空格 替换成 1个空格

语句我当然知道,但是它是如何实现那个神奇的效果呢,你是咋判断每一段里有多少空格

tommyyu 发表于 2022-11-21 09:41:20

wp231957 发表于 2022-11-21 09:39
语句我当然知道,但是它是如何实现那个神奇的效果呢,你是咋判断每一段里有多少空格

由于最多只有 len(x) 个空格(就是整个字符串都是空格),所以只要把长度是 len(x)~1 的空格都给换成 ' ' 就可以了

wp231957 发表于 2022-11-21 09:43:14

tommyyu 发表于 2022-11-21 09:16


原理懂了,貌似效率不是太高

tommyyu 发表于 2022-11-21 09:47:02

wp231957 发表于 2022-11-21 09:43
原理懂了,貌似效率不是太高

O(n)的代码:
x, ans = input(), ''
for i in range(len(x)):
    if x != ' ':
      ans += x
    elif i == len(x)-1 or x != ' ':
      ans += x
print(ans)

wp231957 发表于 2022-11-21 09:50:49

tommyyu 发表于 2022-11-21 09:47
O(n)的代码:

嗯看起来还是正则霸道
页: [1]
查看完整版本: 空格替换