Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/215: Рейтинг темы: голосов - 215, средняя оценка - 4.53
-14 / 0 / 0
Регистрация: 13.10.2019
Сообщений: 8

Отсортируйте введённые строки по возрастанию их длины

25.11.2019, 16:44. Показов 43394. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ортировка по длине
Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
Отсортируйте введённые строки по возрастанию их длины, строки одинаковой длины при этом должны быть отсортированы по возрастанию в алфавитном порядке.

Формат ввода
На первой строке вводится натуральное число N — количество строк.
Далее следуют N строк, которые надо будет отсортировать.

Формат вывода
Выводятся те же N строк, но не в том порядке, в котором они вводились, а в порядке возрастания их длины. Строки одинаковой длины должны быть отсортированы в алфавитном порядке по возрастанию.

Пример
Ввод Вывод
4
три
четыре
пять
шесть
три
пять
шесть
четыре
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.11.2019, 16:44
Ответы с готовыми решениями:

Отсортируйте введённые строки
Отсортируйте введённые строки по возрастанию их длины, строки одинаковой длины при этом должны быть отсортированы по возрастанию в...

Отсортируйте четные строки массива по возрастанию, нечетные – по убыванию
В SringGrid создайте двумерный массив случайных чисел и выведите его в memo (размер массива задается пользователем). Отсортируйте четные...

Дан текстовый файл. Отсортируйте его строки в порядке возрастания длины
Дан текстовый файл. Отсортируйте его строки в порядке возрастания длины. Отсортированный текст запишите в новый файл sortirovka.txt. ...

8
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
25.11.2019, 17:38
Python
1
print(*sorted([input() for _ in range(int(input()))], key = len), sep = '\n')
0
25.11.2019, 17:39

Не по теме:

уфф я уже по названию темы подумал опять кого то отравили

0
 Аватар для codcw
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
25.11.2019, 17:46
Python
1
2
text = ['три', 'четыре', 'пять', 'шесть']
print(sorted(sorted(text), key=len))
Кликните здесь для просмотра всего текста
да, не всегда будет в алфавитном порядке но мне лень
0
25.11.2019, 17:53

Не по теме:

Semen-Semenich, тонко)

0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
25.11.2019, 18:28
А. доп ключ.
Python
1
print(*sorted([input() for _ in range(int(input()))], key = lambda x: (len(x) , x)), sep = '\n')
1
3 / 3 / 0
Регистрация: 27.11.2019
Сообщений: 1
27.11.2019, 18:42
Могу прислать готовый код, если он еще требуется

Добавлено через 11 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
n = int(input())
a = []
for i in range(n):
    a.append(input())
for i in range(n - 1):
    for j in range(n - 1 - i):
        if len(a[j]) > len(a[j + 1]):
            a[j], a[j + 1] = a[j + 1], a[j]
        elif len(a[j]) == len(a[j + 1]):
            if a[j] > a[j + 1]:
                a[j], a[j + 1] = a[j + 1], a[j]
for word in a:
    print(word)
3
 Аватар для stryk1n
6 / 6 / 0
Регистрация: 01.01.2022
Сообщений: 6
05.01.2022, 00:00
более расширенная версия с проверкой каждой буквы словах с одинаковой длиной слов
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
num = int(input()) # принимаем количество чисел
numbers = []
 
for i in range(num):
    numbers.append(input()) # записываем их в список
# перебор пузырьком или как там у вас
for i in range(num - 1):
    for j in range(num - i - 1): 
        if len(numbers[j]) > len(numbers[j + 1]): # если длина слова у определённого элемента больше, чем у следующего,
            numbers[j], numbers[j + 1] = numbers[j + 1], numbers[j] # то меняем их местами
        elif len(numbers[j]) == len(numbers[j + 1]): # ну а если длина слова у определённого элемента равен длине следующего,
            huh = [len(numbers[j]), len(numbers[j + 1])] # то создаём список из длин этих двух последовательных слов,
            for k in range(min(huh)): # делаем цикл, который будет повторяться столько раз, равное минимальному длине слову
                if ord((numbers[j])[k]) > ord((numbers[j + 1])[0]): # перебираем буквы этих двух слов. И, когда какая-то буква 
# будет дальше по словарю к букве с таким же индексом, как и в том,
                    numbers[j], numbers[j + 1] = numbers[j + 1], numbers[j] # то меняем их местами
                    break # выходим из цикла
        
for i in numbers:
    print(i) # выводим
извиняюсь, если не по-русски

Добавлено через 13 минут
вот отредактированная версия
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
num = int(input()) # принимаем количество чисел
numbers = []
 
for i in range(num):
    numbers.append(input()) # записываем их в список
# перебор пузырьком или как там у вас
for i in range(num - 1):
    for j in range(num - i - 1): 
        if len(numbers[j]) > len(numbers[j + 1]): # если длина слова у определённого элемента больше, чем у следующего,
            numbers[j], numbers[j + 1] = numbers[j + 1], numbers[j] # то меняем их местами
        elif len(numbers[j]) == len(numbers[j + 1]): # ну а если длина слова у определённого элемента равен длине следующего,
            if ord((numbers[j])[k]) > ord((numbers[j + 1])[0]): # то берём первые буквы этих слов. И, если какая-то буква 
# будет дальше по словарю к букве, как и в том,
                numbers[j], numbers[j + 1] = numbers[j + 1], numbers[j] # то меняем их местами
        
for i in numbers:
    print(i) # выводим
0
 Аватар для Stepaotboga
17 / 14 / 3
Регистрация: 25.12.2022
Сообщений: 27
25.12.2022, 13:37
Вот полностью рабочий код
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
n = int(input())
data = []
for i in range(n):
    data.append(input())
for i in range(n - 1):
    for j in range(n - 1 - i):
        if data[j] > data[j + 1]:
            data[j], data[j + 1] = data[j + 1], data[j]
for i in range(n - 1):
    for j in range(n - 1 - i):
        if len(data[j]) > len(data[j + 1]):
            data[j], data[j + 1] = data[j + 1], data[j]
for i in data:
    print(i)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.12.2022, 13:37
Помогаю со студенческими работами здесь

Задание на вывод строки в которой введенные символы расположены по возрастанию
Здравствуйте. Не знаю туда ли обращаюсь. Есть задание - "Дана строка символов. Составить строку, в которой слова расположены по...

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

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

Отсортировать слова строки по возрастанию длины слов
Есть задание - нужно отсортировать слова строки по возрастанию длины слов. С цифрами делал подобное, но с размерами строк ещё нет. ...

Переписать в новый файл строки по возрастанию длины
Переписать из файла f1 (содержащего строки разной длинны) строки по возрастанию длинны в файл f2. Запуталась с циклами конкретно :( ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru