在 Python 中重新排列单词之间的空格的程序

假设我们有一个字符串 s,其中一些单词被放置在一定数量的空格中。每个单词至少用一个空格隔开。我们必须重新排列空格,使每对相邻单词之间的空格数相同,并且每个单词之间的空格数最大化。如果我们无法平均重新分配所有空间,我们可以将多余的空间放在最后。

所以,如果输入像s =“我爱编程”,那么输出就是“我爱编程”,看空格是分布的,单词之间有五个空格。

示例(Python)

让我们看看以下实现以获得更好的理解 -

def solve(s):
   res = ""
   total_sp = s.count(" ")
   suff_sp_cnt = total_sp

   text_array = s.split()
   num_words = len(text_array)

   if num_words == 1:
      res = text_array[0] + total_sp * " "
      return res

   sep_size = total_sp // (num_words - 1)
   sep = sep_size * " "

   for i in text_array:
      res += i
      res += sep
      suff_sp_cnt -= sep_size

   suff_sp_cnt += sep_size
   res = res.strip()
   res += suff_sp_cnt * " "

   return res

s = " 我爱编程 "
print(solve(s))

输入

" 我爱编程 "
输出结果
"我爱编程 "

猜你喜欢