假设我们有一个字符串 s,其中一些单词被放置在一定数量的空格中。每个单词至少用一个空格隔开。我们必须重新排列空格,使每对相邻单词之间的空格数相同,并且每个单词之间的空格数最大化。如果我们无法平均重新分配所有空间,我们可以将多余的空间放在最后。
所以,如果输入像s =“我爱编程”,那么输出就是“我爱编程”,看空格是分布的,单词之间有五个空格。
让我们看看以下实现以获得更好的理解 -
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))
" 我爱编程 "输出结果
"我爱编程 "