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

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

假设我们有一个字符串s,其中包含一些单词,这些单词被放置在一些空格之间。每个单词之间至少用一个空格分隔。我们必须重新排列空格,以便每对相邻单词之间有相同数量的空格,并且每个单词之间的空格数量最大化。如果我们无法平均重新分配所有空格,那么我们可以将额外的空格放在末尾。

因此,如果输入类似于s = ” I love programming “,那么输出将为“I love programming”,请注意,空格是在单词之间分配的,单词之间有五个空格。

为了解决这个问题,我们将按照以下步骤进行 –

  • res:=空白字符串

  • total_sp:= s中的空格数

  • suff_sp_cnt:= total_sp

  • text_array:= s中单词的列表

  • num_words:= text_array的大小

  • 如果num_words与1相同,则

    • res:= text_array [0]连接总计数空格

    • 返回res

  • sep_size:=总计数空格/(num_words-1)的商

  • 分隔符:= sep_size个空格

  • 对于文本数组的每个i-1,执行以下操作

    • res:= res + i

    • res:= res + sep

    • suff_sp_cnt:= suff_sp_cnt-sep_size

  • suff_sp_cnt:= suff_sp_cnt+sep_size

  • res:=从左右删除额外的空格

  • res:= res在末尾连接suff_sp_cnt个空格

  • 返回res

实例(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 = " I love programming "
print(solve(s))

输入

"I love programming "

输出

"I love programming "

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程