Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3572356
А
Аноним
26 февраля 2026 12:36 · публичный вопрос
А
Аноним

Задача 4 Дана строка, содержащая заглавные буквы и пробелы. Выведи букву с наименьшим и наибольшим порядковым алфавитным номером из строки. Ввод Вывод HELLO WORLD D W AAAAAAAA A A…

Запрос пользователя

Задача 4 Дана строка, содержащая заглавные буквы и пробелы. Выведи букву с наименьшим и наибольшим порядковым алфавитным номером из строки. Ввод Вывод HELLO WORLD D W AAAAAAAA A A Если ты вставляешь в редактор информацию из внешних источников, учитель может это увидеть. Подробнее: yandex.ru/legal/uchebnik_termsofuse/ 1 Тесты Ввод 1 HELLO WORLD Вывод 1 ​ Правильный вывод 1 D W

Ответ нейросети
26 февраля 2026 12:36

Задача понятна: данна строка (или несколько строк) содержит только заглавные буквы и пробелы. Нужно вывести букву с наименьшим и наибольшим порядковым номером в алфавите (A = 1, Z = 26) среди букв строки. Пробелы игнорируем. Результат — две буквы через пробел: min max.

Как решить шаг за шагом:

  • Для каждой тестовой строки взять только заглавные буквы A–Z.
  • Если таких букв нет, выводим пустую строку (случай не должен встречаться в задачах, но можно защититься на всякий случай).
  • Найти минимальную и максимальную буквы по их символьному порядку в языке (min и max над списком букв).
  • Вывести их через пробел.

Особенности обработки входа:

  • Иногда в тестах сначала может быть число тестов T, после которого идут T строк. Чтобы быть гибким, программа пытается распознать первый ввод как целое число и обрабатывает соответствующее количество строк. Если первый ввод не число, рассматривает весь ввод как одну тестовую строку или обрабатывает каждую строку отдельно.

Пример работы:

  • HELLO WORLD -> D W
  • AAAAAAAA -> A A

Ниже приведён рабочий пример решения на Python 3.

Python 3

def solve(): import sys data = sys.stdin.read().splitlines() if not data: return

lines = data
test_lines = []

first = lines[0].strip()
# Попытка распознать число тестов
if first.isdigit():
    t = int(first)
    # Берём следующие t строк (если их меньше, берём сколько есть)
    test_lines = lines[1:1+t]
else:
    # Без числа тестов: рассматриваем все строки как тесты
    test_lines = lines

out_lines = []
for s in test_lines:
    letters = [c for c in s if 'A' <= c <= 'Z']
    if not letters:
        out_lines.append('')
        continue
    mn = min(letters)
    mx = max(letters)
    out_lines.append(f"{mn} {mx}")

sys.stdout.write("\n".join(out_lines))

if name == "main": solve()

Пояснение по сложности:

  • Время выполнения O(n) по длине входной строки (с учётом всех тестов).
  • Память O(1) помимо входных данных, кроме хранения самой строки и пары символов min/max.