Задачи к Занятию 12.



A: Делаем срезы

Дана строка.
Сначала выведите третий символ этой строки.
Во второй строке выведите предпоследний символ этой строки.
В третьей строке выведите первые пять символов этой строки.
В четвертой строке выведите всю строку, кроме последних двух символов.
В пятой строке выведите все символы с четными индексами (считая, что индексация начинается с 0, поэтому символы выводятся начиная с первого).
В шестой строке выведите все символы с нечетными индексами, то есть начиная со второго символа строки.
В седьмой строке выведите все символы в обратном порядке.
В восьмой строке выведите все символы строки через один в обратном порядке, начиная с последнего.
В девятой строке выведите длину данной строки.

Ввод
Вывод
Абракадабра
р

р

Абрак

Абракадаб

Аркдба

бааар

арбадакарбА

абдкрА

11

B: Количество слов

Дана строка, состоящая из слов, разделенных пробелами. Определите, сколько в ней слов. Используйте для решения задачи метод count.

Ввод
Вывод
Hello world
2

C: Две половинки

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

Ввод
Вывод
Hi
iH
Hello
loHel

D: Переставить два слова

Дана строка, состоящая ровно из двух слов, разделенных пробелом. Переставьте эти слова местами. Результат запишите в строку и выведите получившуюся строку.
При решении этой задачи нельзя пользоваться циклами и инструкцией if.

Ввод
Вывод
Hello world
world Hello

E: Первое и последнее вхождение

Дана строка. Если в этом числе буква f встречается только один раз, выведите её индекс. Если она встречается два и более раз, выведите индекс её первого и последнего появления. Если буква f в данной строке не встречается, ничего не выводите.
При решении этой задачи нельзя использовать метод count и циклы.
 
Ввод
Вывод
comfort
3
office
1 2

F: Второе вхождение

Дана строка. Найдите в этой строке второе вхождение буквы f, и выведите индекс этого вхождения. Если буква f в данной строке встречается только один раз, выведите число -1, а если не встречается ни разу, выведите число -2.
При решении этой задачи нельзя использовать метод count. Метод find (а также rfind) можно вызывать не более двух раз. Для решения этой задачи нельзя использовать циклы.
 
Ввод
Вывод
comfort
-1
coffee
3

G: Удаление фрагмента

Дана строка, в которой буква h встречается минимум два раза. Удалите из этой строки первое и последнее вхождение буквы h, а также все символы, находящиеся между ними.
Методом replace пользоваться нельзя.

Ввод
Вывод
In the hole in the ground there lived a hobbit
In tobbit

H: Обращение фрагмента

Дана строка, в которой буква h встречается как минимум два раза. Разверните последовательность символов, заключенную между первым и последнием появлением буквы h, в противоположном порядке.
Методом replace пользоваться нельзя.

Ввод
Вывод
In the hole in the ground there lived a hobbit
In th a devil ereht dnuorg eht ni eloh ehobbit

I: Дублирование фрагмента

Дана строка, в которой буква h встречается как минимум два раза. Повторите последовательность символов, заключенную между первым и последнием появлением буквы h два раза, сами буквы h повторять не надо.
Методом replace пользоваться нельзя.

Ввод
Вывод
In the hole in the ground there lived a hobbit
In the hole in the ground there lived a e hole in the ground there lived a hobbit

J: Замена подстроки

Дана строка. Замените в этой строке все цифры 1 на слово one.

Ввод
Вывод
1+1=2
one+one=2

K: Удаление символа

Дана строка. Удалите из этой строки все символы @.

Ввод
Вывод
Bilbo.Baggins@bagend.hobbiton.shire.me
Bilbo.Bagginsbagend.hobbiton.shire.me

L: Замена внутри фрагмента

Дана строка. Замение в этой строке все появления буквы h на букву H, кроме первого и последнего вхождения.

Ввод
Вывод
In the hole in the ground there lived a hobbit
In the Hole in tHe ground tHere lived a hobbit

M: Вставка символов

Дана строка. Получите новую строку, вставив между каждыми соседними символами исходной строки символ *. Выведите полученную строку.

Ввод
Вывод
Python
P*y*t*h*o*n

N: Удалить каждый третий символ

Дана строка. Удалите из нее все символы, чьи индексы делятся на 3.

Ввод
Вывод
Python
yton

O: Метод бутерброда

Секретное агентство решило для шифрования переписки своих сотрудников использовать «метод бутерброда». Сначала буквы слова нумеруются в таком порядке: первая буква получает номер 1, последняя буква - номер 2, вторая – номер 3, предпоследняя – номер 4, потом третья … и так для всех букв (см. рисунок). Затем все буквы записываются в шифр в порядке своих номеров. Например, слово «sandwich» зашифруется в «shacnidw».






К сожалению, программист агентства, написал только программу шифрования и уволился. И теперь агенты не могут понять, что же они написали друг другу. Помогите им.
Вводится слово, зашифрованное методом бутерброда. Выведите расшифрованное слово.

Ввод
Вывод
Aabrrbaacda
Abracadabra

P: Маски имен файлов

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

Символ «?» (вопросительный знак) означает ровно один произвольный символ.
Символ «*» (звёздочка) означает любую последовательность символов произвольной длины, в том числе «*» может задавать и пустую последовательность.

Напишите программу, которая для каждого имени файла определит, подходит ли оно под заданную маску. Гарантируется, что в маске файла присутствует не более одного символа «*».
В первой строке содержится маска файла. В следующей строке содержится имя файла по одному в строке. Имя файла состоят из маленьких латинских букв, цифр и символа «.» (точка), в маске также могут содержаться символы «?» и «*» (символ «*» — не более одного раза).
Выведите слово «YES» если оно удовлетворяет маске и «NO» иначе.

Ввод
Вывод
?or*.d??

fort.doc
YES
?or*.d??

ford.doc
YES
?or*.d??

lord2.doc
YES
?or*.d??

orsk.dat
NO
?or*.d??

port
NO