Решение контестов по программированию на Python

Python

Рассмотрим решение задач в недавнем контексте

Последовательность чисел

Напишите программу, которая выводит n первых элементов последовательности 1 , 2 ,2 ,3 ,3 ,3 ,4 ,4 ,4, 4, 5, 5, 5, 5, 5 (число повторяется столько раз, чему оно равно).

Формат входных данных
На вход программе подается положительное целое число n , .

Формат выходных данных
Программа должна вывести указанную последовательность чисел, разделённых пробелом.

Sample Input 1:

7

Sample Output 1:

1 2 2 3 3 3 4

Решение


Можно сократить до одной строки

BeeGeek

Реализуйте функцию beegeek(), которая принимает два целочисленных аргумента a и b, где , и возвращает строку, составленную из чисел от a до  включительно или слов BeeGeek и BeeGeek по следующему правилу:

  • если число делится без остатка на 3, то вместо него в строку добавляется слово Bee;
  • если число делится без остатка на 7, то вместо него в строку добавляется слово Geek;
  • если число делится без остатка и на 3, и на , то вместо него в строку добавляется слово BeeGeek;
  • в остальных случаях в строку добавляется само число.

Примечание 1. Числа и слова в формируемой строке должны разделяться символов пробела.

Примечание 2. В тестирующую систему сдайте программу, содержащую только необходимую функцию beegeek(), но не код, вызывающий ее.

Sample Input 1:

print(beegeek(14, 21))

Sample Output 1:

Geek Bee 16 17 Bee 19 20 BeeGeek

Решение:

Длинное решение

И короткое

Взлом врат

Безумный ученый изобрел машину времени, подключив микроволновку к телефону, и с помощью этого телефона отправляет письма в прошлое. Однако она получилась настолько ужасной, что мало того что в отправленном сообщении могут перемешиваться символы, так еще и добавляется один лишний. Но, если вы найдете этот символ, быть может, неисправность будет обнаружена?

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

Формат входных данных
На вход программе подаются две строки – исходная и измененная, в которой добавлен один лишний символ. Длины строк не превышают 45000 символов.

Формат выходных данных
Программа должна найти лишний символ во второй строке и вывести его.

Sample Input 1:

tuturu

tuturuu

Sample Output 1:

u

Решение


Почти палиндром

Назовем строку текста «почти палиндромом», если найдется такой буквенный символ, при удалении которого строка станет палиндромом. При этом все символы, кроме букв, должны игнорироваться.

Напишите программу, которая определяет, является ли строка «почти палиндромом».

Формат входных данных
На вход программе подается строка текста, состоящая только из букв латинского алфавита в нижнем регистре, цифр и символов !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~. Длина строки не превышает 300000 символов. Гарантируется, что строка содержит как минимум две буквы.

Формат выходных данных
Программа должна вывести True, если введенная строка является «почти палиндромом», или False в противном случае.

Примечание. Палиндром читается одинаково в обоих направлениях, например слово «rotavator».

Sample Input 1:

1kilg%rli8k

Sample Output 1:

True

Решение


Огородный покер

Напишите программу, которая будет находить наилучшую покерную комбинацию в данной руке из 5 карт. Вальты, дамы, короли и тузы будут даны как числа 111213 и 1 соответственно.

В любой карточной игре есть место шулерству, поэтому следует проверить руку на возможность ее существования. В руке из пяти карт не может быть более 4 одинаковых карт, если такое произошло – следует вывести слово Шулер.

Комбинации по убыванию старшинства:

  • 4 одинаковые карты – вывести Каре;
  •  одинаковые карты и 2 другие одинаковые карты – вывести Фулл Хаус;
  •  последовательно идущих карт – Стрит;
  • 3 одинаковые карты – Сет;
  • 2 одинаковые карты и 2 другие одинаковые карты – Две пары;
  • 2 одинаковые карты – Пара;
  • ничего из вышеперечисленного – Старшая карта.

Формат входных данных
На вход программе подается 5 чисел от 1 до 13 через пробел – номера карт в руке.

Формат выходных данных
Вывести наилучшую возможную покерную комбинацию.

Примечание. Старший стрит (десятка, валет, дама, король, туз) не является стритом для упрощения задачи.

Sample Input 1:

4 6 5 7 8

Sample Output 1:

Стрит

Решение


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