华为OD机试 - 去除多余空格(Python)
发布人:shili8
发布时间:2023-05-18 17:38
阅读次数:70
华为OD机试 - 去除多余空格(Python) 题目描述: 给定一个字符串,去除其中多余的空格,使得每个单词之间只有一个空格,并且字符串的首尾没有空格。 输入格式: 输入一个字符串,长度不超过1000。 输出格式: 输出去除多余空格后的字符串。 样例输入: hello world ! 样例输出: hello world ! 解题思路: 本题可以使用Python内置的split()函数将字符串按照空格分割成一个列表,然后再使用join()函数将列表中的元素用一个空格连接起来。在连接的过程中,需要判断当前元素是否为空字符串,如果是,则跳过,否则将其加入到结果字符串中。 代码实现: 代码中使用了strip()函数去除字符串首尾的空格,split()函数将字符串按照空格分割成一个列表,join()函数将列表中的元素用一个空格连接起来。
s = input().strip() # 去除字符串首尾的空格 words = s.split() # 将字符串按照空格分割成一个列表 res = '' # 初始化结果字符串 for i in range(len(words)): if words[i] != '': # 如果当前元素不为空字符串 res += words[i] # 将当前元素加入到结果字符串中 if i != len(words) - 1: # 如果当前元素不是最后一个元素 res += ' ' # 在当前元素后面加上一个空格 print(res) # 输出结果字符串时间复杂度:O(n),其中n为字符串的长度。 空间复杂度:O(n),需要使用一个列表来存储分割后的单词。