Конечно! Представленные задачи охватывают различные темы программирования, такие как работа со строками и списками, условиями, циклами и условиями фильтрации. Ниже я подготовил для каждой задачи подробное решение с объяснениями, чтобы помочь понять принцип их решения.
1. Выведение строк, длина которых равна длине самой длинной строки (ориентация по первому примеру)
Задача:
Дано N строк, нужно вывести все строки, которые имеют длину, равную длине самой длинной строки. Строки выводятся в том же порядке, что и входили.
Подход:
- Считать N.
- Считать все строки и найти максимальную длину.
- Вывести все строки, длина которых равна максимуму.
Код с объяснением:
N = int(input()) # Читаем количество строк
lines = [input() for _ in range(N)] # Собираем все строки в список
max_length = max(len(line) for line in lines) # Находим максимальную длину строки
# Выводим строки, длина которых равна максимальной
for line in lines:
if len(line) == max_length:
print(line)
2. Выведение строк в обратном порядке, длина которых равна длине самой длинной строки (ориентация по второму примеру)
Задача:
Та же, что и предыдущая, но вывод в обратном порядке.
Изменения:
- Найти максимальную длину.
- Вывести строки, у которых длина равна максимуму, в обратном порядке.
Код:
N = int(input()) # Количество строк
lines = [input() for _ in range(N)]
max_length = max(len(line) for line in lines)
# Обратный порядок
for line in reversed(lines):
if len(line) == max_length:
print(line)
3. Поиск наиболее длинных слов, начинающихся на ту же букву, что и последнее слово
Задача:
Дано N слов. Нужно выбрать все слова, начинающиеся на ту же букву, что и последнее слово, и которые являются самыми длинными среди таких.
Подход:
- Считать N.
- Считать слова, определить первую букву последнего слова.
- Пройти по списку и выбрать слова, начинающиеся на эту букву, и найти максимальную длину среди них.
- Вывести все слова, удовлетворяющие этим условиям.
Код:
N = int(input())
words = [input() for _ in range(N)]
last_word = words[-1]
initial_letter = last_word[0]
# Найдём все слова, начинающиеся на ту же букву
filtered_words = [word for word in words if word[0] == initial_letter]
# Находим максимум по длине
max_length = max(len(word) for word in filtered_words)
# Выводим все слова, у которых длина равна максимальной
result = [word for word in filtered_words if len(word) == max_length]
print(result)
4. Проверка наличия троек последовательных элементов равных последнему элементу массива
Задача:
Дано множество чисел, нужно проверить, встречается ли в нём три повторяющихся подряд элемента, равных последнему элементу.
Подход:
- Читать N и массив чисел.
- Определить последний элемент.
- Перебрать массив и проверить наличие тройки подряд, равной последнему элементу.
Код:
N = int(input())
numbers = [int(input()) for _ in range(N)]
last_number = numbers[-1]
found = False
for i in range(N - 2):
if numbers[i] == last_number and numbers[i+1] == last_number and numbers[i+2] == last_number:
found = True
break
if found:
print("ДА")
else:
print("НЕТ")
5. Проверка, отсортирован ли массив по неубыванию
Задача:
Проверить, что каждый последующий элемент не меньше предыдущего.
Код:
N = int(input())
numbers = [int(input()) for _ in range(N)]
# Проверка условий неубывания
is_non_decreasing = all(numbers[i] <= numbers[i+1] for i in range(N - 1))
print("ДА" if is_non_decreasing else "НЕТ")
6. Создание массива оценок, отличающихся от последней не более чем на 2 балла
Задача:
- Считать N и оценки.
- Считать последнюю оценку.
- Вывести все оценки, которые отличаются не более чем на 2 балла от последней.
Код:
N = int(input())
grades = [int(input()) for _ in range(N)]
last_grade = int(input())
result = [grade for grade in grades if abs(grade - last_grade) <= 2]
print(result)
Если нужно решение по какому-то конкретному примеру или есть дополнительные задачи — сообщите!