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

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

25.11.2019, 16:44. Показов 42878. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru