Python. Help pls Дом за зеркалом
Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод
Вывод стандартный вывод
– Хочешь, расскажу, что я думаю насчёт дома там, за зеркалом? Во-первых, там есть комната, как наша гостиная, только вещи в ней стоят иначе. Книги у них такие же, как у нас, только все слова наоборот. Я знаю, потому что держала книгу перед зеркалом, а кто-то там тоже поднёс книгу к месту, где я стояла.
Напишите класс Зазеркальный Дом (LookingGlassHouse), экземпляр которого инициализируется с аргументом-строкой – вещи в доме (слова в строке записаны через пробел).
Класс обеспечивает реализацию следующих методов:
– reflect() – отразить – каждое слово в строке остается на своем месте, но переворачивается задом наперед. При этом, если у слова первая буква была прописной, то в перевертыше тоже первая буква должна остаться прописной, а остальные стать строчными;
– add_thing(value) – добавить вещь в конец строки вещей через пробел;
– sort_things() – располагает все вещи в обратном алфавитном порядке;
– get_things() – возвращает строку – вещи в доме.
Пример 1
Ввод
lgh = LookingGlassHouse('Mirror sofa fireplace')
lgh.add_thing('Picture')
lgh.reflect()
print(lgh.get_things())
Вывод
Rorrim afos ecalperif Erutcip
Пример 2
Ввод
lgh = LookingGlassHouse('Table chair Window')
lgh.add_thing('carpet')
lgh.sort_things()
lgh.reflect()
print(lgh.get_things())
Вывод
riahc teprac Wodniw Elbat
Примечания
В файле, сдаваемом в тестирующую систему, не должно быть ничего, кроме класса и, возможно, вс функций.
В твоё распоряжение предоставляется функция int obrez (char*). Она принимает единственный аргумент - указатель на строку, которую ты хочешь обрезать; делает её обрезание; и возвращает целое число - количество отрезанных хвостовых пробелов.
Обрезание делается методом последовательного забивания вместо хвостовых пробелов нулевого символа.
В main показано использование этой функции на примере ввода строки с клавиатуры. Если хочешь изменить или удалить выдачу обрезанной строки на экран, - то делай что требуется.
Если предполагаешь шалить с памятью, то корректность указателей проверяй сам, функция obrez этого, ес-но, не делает.
2килобайт
разбор решения:
1)H - высота, равная 256 или 2 в восьмой степени
2) W - ширина, равная 256 или 2 в восьмой степени
3) C = 5, потому что есть другая формула , где N - это количество цветов. Количество цветов 28. Но нужно выбрать целое i по формуле i в битах. Нет такой степени чтобы 2 равнялась 28 поэтому берем ближайшую степень 5 и вставляем её в самую первую формулу.
4) Разделить на 8 нужно, чтобы перевести получившиеся биты в байты, но нам нужны килобайты, поэтому делим получившееся число на и получается нужный нам ответ в килобайтах.