python-3.x - 填充字母 - 使用python逐字填充
问题描述
程序必须接受包含多个单词的字符串 S 作为输入。程序必须根据以下条件形成一个新的字符串 W。
- S 和 W 中的字数必须相等。
- S 和 W 中每个单词的长度必须相等。
- W 中的字母必须从 S 中的字母中逐字填充。
最后,程序必须打印字符串 W 作为输出。
边界条件:
0 <= S 的长度 <= 1000
1 <= S 中每个字的长度 <= 20
解决方案
这是一个未优化的版本。可能有一个带有 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)
推荐阅读
- mysql - 基于某些数据的查询多重比较
- python - 更改 windows 文件的 ctime、mtime 和 atime?
- python - 语法错误循环(TypeError:'DataFrame' 对象不可调用)
- python - 如何在 Django 模型中过滤外键
- vb.net - 当照片上传到 picbox 时,将图片从 PictureBox 保存到特定文件夹
- c# - 使用 goto 突破 SUB-LOOPS
- c# - 如何在 RabbitMQ .NET 中处理发布确认
- java - Java Spring Boot 访问 MariaDB 的视图?
- python - 如何从 html 表格中获取文本?
- javascript - 如何在 reactjs 中从相同的 redux 状态进行两种类型的过滤