Найти - Пользователи
Полная версия: Задача "Две половинки"
Начало » Центр помощи » Задача "Две половинки"
1
crazyma66ot
Здравствуйте,
подскажите, пожалуйста, с решением

условие:
Дана строка. Разрежьте ее на две равные части (если длина строки — четная, а если длина строки нечетная, то длина первой части должна быть на один символ больше). Переставьте эти две части местами, результат запишите в новую строку и выведите на экран.

пример:
Hi - iH

решение
 s = input()
x = len(s)
l1 = x - x // 2
print(s[l1:] + s[:l1])


+ вопрос
решение должно использовать только файловый ввод/вывод, как это реализовать?

спасибо
izekia
целочисленное деление
 //

 s = '1234567'
h = sum(divmod(len(s), 2))
s[h:] + s[:h]
crazyma66ot
izekia
целочисленное деление
ошибка? вроде при проверке сошлось с тестовым заданием
izekia
crazyma66ot
ошибка? вроде при проверке сошлось с тестовым заданием
все правильно
просто код другой был
crazyma66ot
izekia
да, потом перерешалось.
но вопрос мой остается открытым (

принимается решение только на ввод/вывод файла, как это сделать?
izekia
если это типа олимпиадных задачек, то там либо должны быть явно указаны имена файлов, либо стдин/стдоут
crazyma66ot
izekia
если это типа олимпиадных задачек, то там либо должны быть явно указаны имена файлов, либо стдин/стдоут
это домашняя задачка, имена файлов не указаны, условие полностью приведено в первом топике, но сказано, что решение принимается только через ввод-вывод файла
izekia
 from contextlib import ExitStack
  
with ExitStack() as stack:
    fin = stack.enter_context(open('input.txt', 'r', encoding='utf8'))
    fout = stack.enter_context(open('output.txt', 'w', encoding='utf8'))
    while True:
        s = fin.readline()[:-1]
        if not s:
            break
        x = len(s)
        l1 = x - x // 2
        print(s[l1:] + s[:l1], file=fout)

это для записи тестового файла:
 with open('input.txt', 'w', encoding='utf8') as fout:
    print('123', file=fout)
    print('1234', file=fout)
    print('1', file=fout)
    print('12345', file=fout)
    print('123456', file=fout)

это для вывода результата:
 with open('output.txt', 'r', encoding='utf8') as fin:
    print(fin.read())
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB