Заполните алфавиты - слово за словом, используя python - PullRequest
0 голосов
/ 22 апреля 2020

Программа должна принять строку S, содержащую несколько слов, в качестве входных данных. Программа должна сформировать новую строку W на основе следующих условий.
- Количество слов в S и W должно быть одинаковым.
- Длина каждого слова в S и W должна быть одинаковой.
- Буквы в W должны быть заполнены дословно из алфавитов в S.
Наконец, программа должна вывести строку W в качестве выходных данных.
Граничное условие (я):
0 <= Длина S <= 1000 <br>1 <= Длина каждого слова в S <= 20 <br>

Example Input and Output

1 Ответ

0 голосов
/ 22 апреля 2020

Вот неоптимизированная версия. Вероятно, есть более короткая версия с картой или лямбда, но ...

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...