Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/230: Рейтинг темы: голосов - 230, средняя оценка - 4.87
7 / 7 / 0
Регистрация: 15.02.2018
Сообщений: 56

Самые короткие и самые длинные слова

21.03.2018, 20:20. Показов 50383. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать класс MinMaxWordFinder. Класс должен уметь анализировать текст и находить в нём слова наименьшей и наибольшей длины. Текст состоит из предложений, которые добавляются в обработку методом add_sentence. Метод shortest words возвращает список самых коротких на данный момент слов, метод longest_words — самых длинных. Слова, возвращаемые shortest_words и longest_words, должны быть отсортированы по алфавиту.

Если одно из самых коротких слов встретилось в исходных предложениях несколько раз, оно должно столько же раз повториться в списке самых коротких слов. Самые длинные слова наоборот должны входить в список без повторов.

Формат ввода
Каждый тест представляет собой код, в котором будет использоваться ваш класс. Файл c решением не обязательно называть solution.py, он будет переименован автоматически. Тест запускается с вашим классом, а его вывод сравнивается с правильным решением.

Пример 1
Ввод Вывод
Python
1
2
3
4
5
6
7
from solution import MinMaxWordFinder
 
finder = MinMaxWordFinder()
finder.add_sentence('hello abc world')
finder.add_sentence('def asdf qwert')
print(' '.join(finder.shortest_words()))
print(' '.join(finder.longest_words()))
abc def
hello qwert world
Пример 2
Ввод Вывод
Python
1
2
3
4
5
6
7
8
9
10
11
from solution import MinMaxWordFinder
 
finder = MinMaxWordFinder()
finder.add_sentence('hello')
finder.add_sentence('abc')
finder.add_sentence('world')
finder.add_sentence('def')
finder.add_sentence('asdf')
finder.add_sentence('qwert')
print(' '.join(finder.shortest_words()))
print(' '.join(finder.longest_words()))
abc def
hello qwert world
Пример 3
Ввод Вывод
Python
1
2
3
4
5
6
7
8
9
10
11
from solution import MinMaxWordFinder
 
finder = MinMaxWordFinder()
finder.add_sentence('hello')
finder.add_sentence('  abc     def    ')
finder.add_sentence('world')
finder.add_sentence('            abc          ')
finder.add_sentence('asdf')
finder.add_sentence('qwert')
print(' '.join(finder.shortest_words()))
print(' '.join(finder.longest_words()))

abc abc def
hello qwert world
1
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.03.2018, 20:20
Ответы с готовыми решениями:

В тексте найти самые короткие и самые длинные слова
Напишите класс MinMaxWordFinder. Класс должен уметь анализировать текст и находить в нём слова наименьшей и наибольшей длины. Текст состоит...

Самые короткие и самые длинные слова
Напишите класс MinMaxWordFinder. Класс должен уметь анализировать текст и находить в нём слова наименьшей и наибольшей длины. Текст состоит...

Между массивами A и B обменять их самые длинные цепочки из одинаковых элементов
Пример: массив A: 3 2 2 5 2 1 1 1 3 9 массив B: 1 2 5 5 4 8 3 3 В массиве A самая длинная цепочка: 1 1 1 (элементы с 7 по 9) В...

5
 Аватар для Semen-Semenich
5228 / 3474 / 1174
Регистрация: 21.03.2016
Сообщений: 8,301
21.03.2018, 21:41
Лучший ответ Сообщение было отмечено Taranboy как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class MinMaxWordFinder():
    
    def __init__(self):
        self.minword = 0
        self.maxword = 0
        self.list_word = [ ]
        
    def add_sentence(self,text):
        self.list_word += text.split()
        self.minword = len(min(self.list_word, key = len))
        self.maxword = len(max(self.list_word, key = len))
        
    def shortest_words(self):
        return sorted(list(filter(lambda x : len(x) == self.minword, self.list_word)))
    
    def longest_words(self):
        return sorted(set(filter(lambda x : len(x) == self.maxword, self.list_word)))
0
7 / 7 / 0
Регистрация: 15.02.2018
Сообщений: 56
21.03.2018, 22:15  [ТС]
Он мне ошибку выводит
0
4 / 4 / 0
Регистрация: 02.03.2019
Сообщений: 7
19.03.2019, 21:07
Надо код подправить и предусмотреть тот случай, когда вместо текста добавляется пустота
0
 Аватар для Semen-Semenich
5228 / 3474 / 1174
Регистрация: 21.03.2016
Сообщений: 8,301
20.03.2019, 12:16

Не по теме:

MrFinik, это надо было год назад подсказать

0
3 / 3 / 0
Регистрация: 31.10.2020
Сообщений: 4
13.03.2021, 09:51
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class MinMaxWordFinder:
    def __init__(self):
        self.word_list = []
 
    def add_sentence(self, value):
        self.word_list.extend(value.split())
 
    def shortest_words(self):
        len_list, check_len_word, answer = [len(i) for i in self.word_list], 0, []
        if len_list:
            check_len_word = min(len_list)
        for i in self.word_list:
            if len(i) == check_len_word:
                answer.append(i)
        return sorted(answer)
 
    def longest_words(self):
        len_list, check_len_word, answer = [len(i) for i in self.word_list], 0, []
        if len_list:
            check_len_word = max(len_list)
        for i in self.word_list:
            if len(i) == check_len_word:
                answer.append(i)
        return sorted(set(answer))
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.03.2021, 09:51
Помогаю со студенческими работами здесь

Отсортировать слова в строке так, чтобы наиболее короткие из них были в начале строки, а наиболее длинные в конце
Вводится строка, состоящая из слов, разделенных пробелами. Требуется от- сортировать слова в строке так, чтобы наиболее короткие из них...

Ввести два предложения и распечатать самые длинные слова, общие для этих предложений
Ввести два предложения и распечатать самые длинные слова общие для этих предложений. Если нужных слов нет - сообщить об этом

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

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

Поменять местами самые короткие и самые длинные слова в тексте
В файле есть текст. Определены самое короткое и самое длинное слова. Нужно поменять их местами в тексте.


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru