2016-01-12 4 views
-1

Я знаю, что есть уже обратные решения, но не может понять концепцию для следующего вопроса.обратный текст с концом

.wons са etihw пила eceelf STI bmal elttil дах yraM конец

поэтому возвращает

Мэри был барашек его шерсть была белой, как снег.

Я далеко?

line=raw_input() 
lines = [] 
i = 0 
while line != "end": 
    lines.append(line) 
    line=raw_input() 
for line in lines[::-1]: 
print line 
+0

Что он выводит? – Turn

+1

* «Я далеко?» * - расскажи нам. Это работает? – jonrsharpe

+0

Будет ли конец «конца» всегда в конце или это может быть что угодно? –

ответ

-2

Я предполагаю, что все ваши входное накоплены в одной строке и что конца маркер отпарков. Общая стратегия:

  • разделить вашу линию необработанного текста в массив слов
  • шага через каждый из ваших слов, обращающего слово строки
  • изменить порядок записей в массиве слов
  • присоединяются к элементам массива вместе с промежуточными пробелами.

В коде (первый вырвались на ступеньках):

line = ".wons sa etihw saw eceelf sti bmal elttil a dah yraM" 
words = line.split(" ") 
words_letters_reversed = [ w[::-1] for w in words] 
word_order_reversed = list(reversed(words_letters_reversed)) 
reassembled_into_a_string = " ".join(word_order_reversed) 
print(reassembled_into_a_string) 

=> «У Мэри был барашек его шерсть была белой, как снег»

И тогда все сразу:

result = " ".join(list(reversed(([ w[::-1] for w in line.split(" ")])))) 
print(result) 

=> «У Мэри был барашек его шерсть была белой, как снег»

+1

У вас достаточно репутации для комментариев, вот что вам следовало делать. Разверните ответ или сделайте комментарий. Как и впрочем, он имеет низкое качество. –

+0

Благодарим за отзыв. Надеюсь, я улучшил ответ на более высокое качество. –

0

Есть несколько вещей, которые можно настроить здесь.

Похоже, что вы хотите сохранить реверсирования пользовательского ввода, пока вход не будет «конец»

Более простой способ сделать это было бы:

while True:       # to set the loop going 
    line = raw_input() 
    if line == 'end': break   # to exit the loop 

После этого, если вход не является " end ', вы по умолчанию используете свой код отмены:

print line[::-1]  # notice the indentation 

который имеет гладкую индексацию.

Если вы хотите сохранить обратную строку, это другое дело, но не ясно, что вы хотите это сделать.

Это не касается строки, имеющей «конец» в конце. , , является ли это неотъемлемой частью этого? Потому что мне это не кажется нужным.

Если «конец» всегда есть (с или без времени цикла):

line = raw_input() 
print line[-5::-1] 

, которая будет возмещена все это, но будет вырезать «конец» с конца первым.

Если это не поможет, можете ли вы дать дополнительную информацию о том, чего вы хотите достичь?

Смежные вопросы