Строки

216 задач
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.

Пользователь вводит количество слов, а затем сами слова — каждое на отдельной строке. Сохраните все слова в список.

Выведите две строки:

  1. Исходный список — слова через пробел в порядке ввода.
  2. Отсортированный список — слова через пробел по возрастанию длины. Если длины равны, сохраните порядок ввода.

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

Первая строка — целое число \(N\) (\(1 \le N \le 15\)).

Следующие \(N\) строк — по одному слову (строчные русские буквы, без пробелов).

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

Две строки: исходный список и отсортированный по возрастанию длины, слова через пробел.

Примечание

Подсказка: используйте key=len в функции sorted().

Пользователь вводит слова через пробел в одной строке. Сохраните в список только те слова, длина которых строго больше 3. Выведите получившийся список — слова через пробел в том порядке, в котором следуют во входных данных.

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

Одна строка — слова через пробел (от 1 до 20 слов).

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

Одна строка — слова с длиной больше 3 через пробел. Если таких слов нет, выведите пустую строку.

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

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

Одна строка — слова через пробел (от 2 до 15 слов). Все слова различны.

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

Строки в формате слово: длина, отсортированные по длине (по возрастанию), при равенстве — по алфавиту.

Дана строка ДНК, состоящая из символов A, T, G, C. Длина строки кратна 3. Выполните следующие вычисления:

  1. Длина последовательности.

  2. GC-состав — процентная доля нуклеотидов \(G\) и \(C\): \[\mathrm{GC\%} = \frac{|G| + |C|}{n} \times 100,\] где \(|X|\) — количество символов \(X\), \(n\) — длина строки. Округлить до 2 знаков после запятой.

  3. Обратная комплементарная цепь (reverse complement). Комплементарность: \(A \leftrightarrow T\), \(G \leftrightarrow C\); затем цепь разворачивается.

  4. GC-богатые кодоны — количество кодонов (трёхбуквенных блоков), в которых два или три нуклеотида являются \(G\) или \(C\).

  5. Наиболее частый нуклеотид. При ничьей вывести тот, который идёт первым в алфавитном порядке (A < C < G < T).

Формат ввода. Одна строка — последовательность ДНК (только заглавные A, T, G, C; \(6 \le n \le 300\); \(n\) кратно 3).

Формат вывода. Ровно 5 строк в следующем порядке:

length: <целое>
gc: <вещественное, 2 знака>
rc: <строка>
gc_rich_codons: <целое>
most_frequent: <символ>

Пример ввода:

ATGGGCCCTATGAAA

Пример вывода:

length: 15
gc: 46.67
rc: TTTCATAGGGCCCAT
gc_rich_codons: 2
most_frequent: A

Разбор примера. Последовательность: ATG GGC CCT ATG AAA.

 

GC-состав: \((3+3+2+1)/15 = 9/15 \approx 46.67\%\). Кодоны GGC (\(3\,G/C\)) и CCT (\(2\,G/C\)) — итого 2 GC-богатых кодона. Наиболее частый нуклеотид: \(A=5, G=4, C=3, T=3\) — лидирует \(A\).

 

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

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

После этого он берёт монетку и кладёт её на первую букву слова. Затем много раз (возможно, бесконечное число) он делает следующую операцию: если выбранном слове есть еще одна такая же буква, как и та, на которой лежит монетка, то портье перекладывает эту монетку на любую такую же букву. Если же буква, на которой лежит монетка встречается ровно один раз, то портье сдвигает монетку на следующую букву, а если следующей буквы в слове нет, то игра завершается.

Например, если изначальное слово было <<letovo>>, то монетка будет перемещаться следующим образом (положение монетки в отражено жирным подчёркнутым шрифтом):

  1. letovo

  2. letovo

  3. letovo

  4. letovo

  5. letovo

  6. letovo

  7. letovo

  8. \(\dots\)

Обратите внимание, что в примере выше игра никогда не завершится: монетка будет бесконечно долго перемещаться между двумя буквами <<o>>.

Помогите Портье: по данному вам слову длины \(n\), состоящему только из строчных букв латинского алфавита, узнать завершается ли на этом слове придуманная им игра.

В первой строке дано число \(n\) (\(1 \le n \le 100\,000\)) — длина строки.

Во второй строке дана строка \(s\), строка состоит только из строчных букв латинского алфавита.

Выведите <<YES>>, если игра завершается, и <<NO>> — в противоположном случае.

Даша в Roblox строит город и ей нужно построить N домиков. Каждый домик выглядит как крыша: /\

Напишите программу, которая запрашивает у пользователя целое неотрицательное число N и чвыводит N домиков в одну строку.

Входные данные: число N

Выходные данные: N домиков (без пробелов)

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

Формат входных данных
Строка, содержащая алфаитно-цифровые символы (кроме пробела). Длина строки не более 100 символов.

Формат выходных данных
Выведите строку, получившуюся после реверса

 Найти все целые числа в строке. Число - это последовательность из одной или более цифр, которая:

  • Ограничена слева либо началом строки, либо нецифровым символом

  • Ограничена справа либо концом строки, либо нецифровым символом

  • Может начинаться с нуля (например, "012" считается числом)

  • Цифры могут повторяться


Формат входных данных
Строка, содержащая алфавитно-цифровые символы и знаки препинания. 

Формат выходных данных
Вывести все числа, находящиеся в данной строке. Все найденные числа вывести в одной строке через один пробел. Если чисел в строке нет, вывести None.
Некоторые функции требуют определенных типов данных в качестве аргументов.

Команды int()str() и float() - это тоже встроенные функции, которые используются для преобразования данных.

Функции int()str() и float() работают только с определёнными типами данных. Если передать им неподходящий аргумент, произойдёт ошибка.

  • int(число_или_текст_с_цифрами) — можно передать число или текст, содержащий только цифры ("123").

  • float(число_или_текст_с_числом) — можно передать число или текст, содержащий число ("12.3").

  • str(что_угодно) — можно передать любые данные, они превратятся в текст.


Выберите вариант, который вызовет ошибку:

  1. int("15")

  2. int("пятнадцать")

  3. float("3.14")

  4. str(100)

Мы не только можем спросить пользователя, сколько раз выполнить команды, но и можем спросить, что именно будет показывать программа — текст, числа или даже смайлики! 
 


Напиши программу, которая будет как попугай 🦜 - повторять любое слово или фразу столько раз, сколько скажешь!

  1. Сначала программа спросит сколько раз повторить

  2. Потом что именно повторять

  3. И будет послушно выводить это нужное количество раз

 

Формат входных данных
Программа в первой строке вводит одно натуральное число \(n\) — количество раз, которое необходимо вывести строку.
Во второй строке - строку, которую необходимо вывести \(n\) раз.
 

Формат выходных данных
Выведите на экран заданную строку \(n\) раз, каждую на отдельной строке.

✓ 879✗ 1 539100лёгкаяВойти и решать
Оператор input() всегда преобразует ввод пользователя в строку, независимо от того, что вводит пользователь.
 

Задание

Что хранит переменная total_sum после ввода пользователем числа 1000?
total_sum = input()
print(total_sum)
Выберите верный вариант ответа
1) целое число
2) строку
3) дробное число
Напишите программу, которая выводит любое ASCII-изображение. Главное условие, ваше изображение должно содержать специальные символы (кавычки или апострофы, бек-слеш (\)). Общее количество специальных символов должно быть не менее 5. Количество строк не менее пяти. 

Ваша программа будет автоматически проверена на соблюдение условий. Окончательную оценку за задачу вам поставит учитель (если вы занимаетесь с учителем). 
Напишите программу, которая преобразовывает ДНК в РНК и обратно. Надо проверить, совпадают ли исходная ДНК и обратно транскрибированная ДНК.
Формат входных данных
Единсвенная строка содержит последовательность ДНК.

Формат выходных данных
Выведите Yes если исходная ДНК и обратно транскрибированная ДНК совпадают и No если не соврадают.
✓ 19✗ 13500лёгкаяВойти и решать
Напишите программу, которая подсчитывает общее количество нуклеотидов G и C и вычисляет процентное содержание GC в последовательности.
Формат входных данных
Единсвенная строка содержит последовательность ДНК.

Формат выходных данных
Запишите в две строки: общее количество нуклеотидов G и C и процентное содержание GC в последовательности.
Напишите программу, которая преобразовывает РНК не кратную трем в белковую последовательность, подсчитывает длину и количество определённых аминокислот (L).
Формат входных данных
Единсвенная строка содержит последовательность РНК.

Формат выходных данных
Запишите три строки, являющиеся ответами на задания задачи соответственно: 
1) Белковая последовательность.
2) Длина цепи.
3) Колличество аминокислот L.
Напишите программу, которая преобразовывает РНК в белковую последовательность, подсчитывает длину и количество определённых аминокислот (L).
Формат входных данных
Единсвенная строка содержит последовательность РНК.

Формат выходных данных
Запишите три строки, являющиеся ответами на задания задачи соответственно: 
1) Белковая последовательность.
2) Длина цепи.
3) Колличество аминокислот L.
✓ 29✗ 29300лёгкаяВойти и решать
Напишите программу, которая преобразовывает РНК в ДНК и анализирет получившиюся последоватлеьность.
Формат входных данных
Строка содержит последовательность РНК.

Формат выходных данных
Запишите три строки, являющиеся ответами на задания задачи:
1) Последовательность ДНК.
2) Количество нуклеотида G.
3) Индекс первого вхождения подстроки UA.
Напишите программу, которая анализирует последовательность ДНК.
Формат входных данных
Первая строка содержит последовательность ДНК.

Формат выходных данных
Запишите пять строки, являющиеся ответами на задания задачи:
1) Количество нуклеотида A в последовательности.
2) Количество нуклеотида T в последовательности.
3) Количество нуклеотида G в последовательности.
4) Количество нуклеотида C в последовательности.
5) Индекс первого вхождения подстроки CGT.

Кодоны — это триплеты нуклеотидов (три буквы), которые определяют аминокислоты в процессе трансляции (синтеза белка).

  1. Старт-кодон — кодон, с которого начинается считывание белковой последовательности. В ДНК это всегда ATG.
  2. Стоп-кодоны — кодоны, которые сигнализируют окончание считывания. В ДНК это:
    • TAA
    • TAG
    • TGA
 

Надо написать программу, которая:

  1. Находит все стартовые (ATG) и стоп-кодоны (TAA, TAG, TGA) в последовательности ДНК.
  2. Возвращает их позиции (индексы).
Формат входных данных
Строка содержит последовательность ДНК

Формат выходных данных
В первой строке вывести позиции старт-кодонов в порядке возрастания, во второй строке вывести позиции стоп-кодонов в порядке возрастания.
Поделиться
Класснуть