Python. Задачи на простые коллекции

      1. Каждый ученик в классе изучает либо английский, либо французский, либо оба этих языка. У классного руководителя есть списки учеников, изучающих английский и французский языки. Помогите ему выяснить, сколько учеников в классе изучают только один язык.
        Формат ввода: В первых двух строках указывается количество учеников, изучающих английский и французский языки (M и N). Затем идут M+N строк с фамилиями учеников в произвольном порядке. Гарантируется, что среди учеников нет однофамильцев. Формат вывода: Количество учеников, которые изучают только один язык. Если таких учеников не окажется, в строке вывода нужно написать 0.
        Пример
        Ввод
        3
        2
        Ванюта
        Соколов
        Васечкин
        Ванюта
        Михайлов
        Вывод: 3
      2. Начальник отдела кадров хочет узнать, сколько мужчин-однофамильцев работает в организации. Имеется список фамилий, и на основании этого списка нужно вычислить количество фамилий, которые совпадают с другими.
        Формат ввода: В первой строке указывается количество мужчин — сотрудников организации (N). Затем идут N строк с фамилиями этих сотрудников в произвольном порядке.
        Формат вывода: Количество однофамильцев в организации.
      3. Возьмём число. Умножим его на его же первую цифру. Результат умножим на первую цифру результата. И так далее. Например, начнём с 3:
        3 → 3 * 3 = 9
        9 → 9 * 9 = 81
        81 → 81 * 8 = 648
        648 → 648 * 6 = 3888
        3888 → 3888 * 3 = 11664
        11664 → 11884 * 1 = 11664
        Очевидно, когда первая цифра очередного числа в такой последовательности становится равной 1, числа перестают изменяться. Но это происходит не при всех начальных числах.
        Напишите программу, которая будет хотя бы приблизительно определять судьбу введённого числа.
        Формат ввода: Вводится натуральное число n, меньшее миллиарда.
        Формат вывода: Начиная с числа n, умножайте имеющееся число на его первую цифру, пока у получившегося числа первая цифра не станет равной 1, либо пока оно не превысит миллиарда. Выведите результат.
        Пример 1. Ввод: 3. Вывод: 11664.
        Пример 2. Ввод: 5. Вывод:
      4. Многим известен шифр Цезаря. Алгоритм шифрования следующий. Сначала выбирается шаг шифрования (число), а затем все буквы послания заменяются на буквы, отстоящие от них в алфавите на шаг шифрования. Например, при шаге шифрования 3 (таким чаще всего пользовался Цезарь), буква А заменяется на букву Г, буква Б – на букву Д.
        Обращаем внимание, что алфавит «зациклен», то есть при сдвиге буквы Я на шаг 3 получится буква В.
        Напишите программу, которая будет зашифровывать послание с помощью шифра Цезаря с заданным шагом шифрования.
        Формат ввода: Две строки. Первая содержит шаг шифрования, вторая – послание.
        Формат вывода: Строка с зашифрованным посланием.
        Замечание.
        Символы русского алфавита расположены в стандартной для Python таблице кодировки подряд, то есть номера, выдаваемые функцией ord(symbol), идут подряд. Буква «ё» идёт в таблице кодировки отдельно от основного алфавита. При решении задачи считайте, что буквы «ё» в русском алфавите нет.
        2. Список букв русского алфавита можно задать, например, так:

        alphabet_lower = [chr(ord("а") + i) for i in range(32)]
        alphabet_upper = [chr(ord("А") + i) for i in range(32)]

        Или так:

        abc = ("а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я").split()
        ABC = ('А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я').split()
        
        
      5. Напишите программу, которая коварно превращает некоторые полезные советы в вредные.
        Формат ввода: Сначала вводится натуральное число N — количество полезных советов. На следующих N строках вводятся полезные советы. Гарантируется, что длина каждого — не менее 3 символов.
        Формат вывода: Нужно вывести те же советы в том же порядке, однако у тех из них, что начинаются со слова «не» (которое также может быть записано как «Не») и пробела, выводить это начальное «не» и пробел не нужно.
        Пример
    Ввод Вывод
    3

    Мой руки перед едой!
    Не суй пальцы в розетку!
    Берегись автомобиля!

    Мой руки перед едой!
    суй пальцы в розетку!
    Берегись автомобиля!
        • Напишите программу, которая укорачивает заголовки новостей, чтобы их анонсы поместились в ленте событий на сайте новостного агентства. Если длина заголовка превышает максимальную допустимую длину анонса, следует укоротить его и добавить в конце многоточие (в виде трёх точек), чтобы получившийся анонс имел ровно максимальную допустимую длину.

    Формат ввода

    На первой строке вводится натуральное число — максимальная допустимая длина анонса.
    На второй строке вводится натуральное число N — количество заголовков.
    Далее вводится N заголовков, каждый на отдельной строке. Гарантируется, что заголовки не короче 4 символов.

    Формат вывода

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

    Пример

    Ввод Вывод
    25

    3

    Начался саммит по глобальному потеплению

    Завтра Новый год!

    Python и Java конкурируют за звание самого популярного языка программирования

    Начался саммит по глоб…

    Завтра Новый год!

    Python и Java конкурир…

    Примечания

    Следует учесть, что многоточие входит в максимальную длину.

     

            1. Напишите программу, которая проводит первичную обработку неких сложных и глючных логов. Нужно удалить сочетание «%%» в начале некоторых строк и удалить строки, начинающиеся с «####».

    Формат ввода

    На первой строке вводится натуральное число N — количество строк, подлежащих обработке.
    Далее вводятся сами строки, N штук.

    Формат вывода

    Нужно вывести те же строки в том же порядке, однако если строка начинается с символов «%%», то их выводить не следует, а если строка начинается с сочетания символов «####», то её нужно вообще пропустить.

    Пример

    Ввод Вывод
    3

    SVO TRS 29481292

    %%LJPZ DME 11113283675

    ####&%^^^^

    SVO TRS 29481292

    LJPZ DME 11113283675

     

            1. Числа Трибоначчи — это последовательность целых чисел, которая определяется так:
            • первое, второе и третье числа Трибоначчи равны единице;
            • каждое следующее число Трибоначчи равно сумме трёх предыдущих.

    В общем, почти как числа Фибоначчи.

    Напишите программу, которая вычисляет числа Трибоначчи.

    Формат ввода

    Вводится одно натуральное число N (N <= 75).

    Формат вывода

    Выводятся первые N чисел Трибоначчи.

    Пример

    Ввод Вывод
    6 1 1 1 3 5 9

     

            1. Увеличьте шрифт, которым набрана строка.

    Формат ввода

    Вводится одна строка, состоящая только из латинских букв A, B, C.

    Формат вывода

    Выводятся 5 строк, которые представляют те же самые буквы, но составленные из звёздочек и пробелов, разделённые двумя пробелами, как показано в примере.

     

    1. Напишите программу, которая удаляет из программы на языке Python комментарии, а также символы пустого пространства на конце строк. Считайте, что символ решётки всегда означает начало комментария (проверьте себя: в каком случае это не так?).

    Формат ввода

    На первой строке вводится символ решётки и сразу же натуральное число N — количество строк в программе, не считая эту первую.
    Далее следует N строк.

    Формат вывода

    Нужно вывести те же строки, но удалить комментарии и символы пустого пространства в конце строк. Пустую строку вместо первой строки ввода выводить не надо.

    Пример

    Ввод Вывод
    #2name = input()  print(‘Привет,’, name) # здороваемся name = input()print(‘Привет,’, name)

     

    1. Частотный анализ — это подсчёт, какие символы чаще встречаются в тексте. Это важнейший инструмент взлома многих классических шифров — от шифра Цезаря до шифровальной машины «Энигма». Выполним простой частотный анализ: выясним, какой символ чаще всего встречается в данном тексте.

    Формат ввода

    Вводится одна строка.

    Формат вывода

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

    Пример

    Ввод Вывод
    Баобаб б

     

    1. Предположим, вы — Эрнст Винсент Райт, и вы пишете очередной литературный эксперимент: роман, в котором вообще не используется какая-нибудь одна буква (как в вашем романе “Gadsby” ни разу не использовалась буква “e”, что, как говорят, осталось незамеченным редакторами). Будет полезно иметь программу, которая укажет, в каких словах вы, забывшись, всё-таки употребили эту букву.

    Формат ввода

    На первой строке вводится один символ — строчная буква.
    На второй строке вводится предложение.

    Формат вывода

    Нужно вывести список слов (словом считается часть предложения, окружённая символами пустого пространства), в которых присутствует введённая буква в любом регистре, в том же порядке, в каком они встречаются в предложении.

    Пример

    Ввод Вывод
    mMary had a little lamb. Marylamb.

     

    1. Вам дан английский текст. Закодируйте его с помощью азбуки Морзе: https://en.wikipedia.org/wiki/Morse_code#/media/File:International_Morse_Code.svg

    Каждая буква заменяется на последовательность точек и тире. В качестве тире используйте обычный дефис: «-», а в качестве точки — точку «.». Например, буква «g» превратится в трёхсимвольную строку «—.». Между закодированными буквами нужно ставится ровно один пробел. Например, слово «Help» превратится в «…. . .-.. .—.».

    Обратите внимание, что строчные и заглавные буквы кодируются одинаково.

    Формат ввода

    Весь текст записан в единственной строке. Текст состоит из английских букв и пробелов, других символов в тексте нет. В тексте не может быть двух или более пробелов подряд.

    Длина текста не превышает 100 000 символов, количество слов в тексте не превышает 1000.

    Формат вывода

    Выведите каждое слово исходного текста, закодированное азбукой Морзе, на отдельной строке. Количество строк в ответе должно совпадать с количеством слов в исходном тексте.

    Пример

    Ввод Вывод
    Help me SOS …. . .-.. .—.— …. — …

     

    Вам необходимо транслитерировать его, то есть заменить все русские буквы на английские по правилам транслитерации для загранпаспортов 2010 года: http://mishka.travel/blog/index/node/id/1073-transliteraciya-v-zagranpasportah-rossiiskoi-federacii/.

    Букву «ё» транслитерируйте как «e», «й» как «и», а «ъ» и «ь» (и их заглавные версии «Ъ» и «Ь») должны исчезнуть из текста. Строчные буквы заменяются на строчные, заглавные заменяются на заглавные. Если заглавная буква превращается при транслитерации в несколько букв, то заглавной должна остаться только первая из них (например, «Ц» → «Tc»).

    Все некириллические символы должны остаться на месте.

    Формат ввода

    В единственной строке задан русский текст. Текст может состоять из любых символов, вам необходимо транслитерировать только русские буквы, а остальные оставить на месте. Гарантируется, что нет слов, состоящих только из букв «ъ» и «ь».

    Формат вывода

    Выведите одну строку — транслитерированный текст.

    Пример

    Ввод Вывод
    Я помню чудное мгновенье: Передо мной явилась ты, Как мимолетное виденье, Как гений чистой красоты. Ia pomniu chudnoe mgnovene: Peredo mnoi iavilas ty, Kak mimoletnoe videne, Kak genii chistoi krasoty.

     

Поделиться:
  • Добавить ВКонтакте заметку об этой странице
  • Мой Мир
  • Facebook
  • Twitter
  • LiveJournal
  • FriendFeed
  • В закладки Google
  • Google Buzz
  • Яндекс.Закладки
  • StumbleUpon
  • Technorati
  • БобрДобр
  • Memori.ru
  • МоёМесто.ru

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.