首页 > 解决方案 > 填充字母 - 使用python逐字填充

问题描述

程序必须接受包含多个单词的字符串 S 作为输入。程序必须根据以下条件形成一个新的字符串 W。
- S 和 W 中的字数必须相等。
- S 和 W 中每个单词的长度必须相等。
- W 中的字母必须从 S 中的字母中逐字填充。
最后,程序必须打印字符串 W 作为输出。
边界条件:
0 <= S 的长度 <= 1000
1 <= S 中每个字的长度 <= 20

示例输入和输出

标签: python-3.xstringlist

解决方案


这是一个未优化的版本。可能有一个带有 map 或 lambda 的较短版本,但是......

def shuffle(S):
    words = S.split(' ')
    letters = sorted([c for c in S if c != ' '])
    new_words = []
    i = 0
    for l in letters:
        placed = False
        while not placed:
            if len(new_words) < len(words):
                new_words.append(l)
                placed = True
            else:
                if len(new_words[i]) < len(words[i]):
                    new_words[i] += l
                    placed = True
                i += 1
                if i == len(words):
                    i = 0
    return ' '.join(new_words)

推荐阅读