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

Решение задачи по нахождению самого длинного слова в тексте

04.10.2021, 08:24. Показов 23597. Ответов 16

Студворк — интернет-сервис помощи студентам
Паоло изучает русский язык: занимается по учебникам, читает книги, слушает музыку. Особенно Паоло понравилась книга “Преступление и наказание”. И ему стало интересно, какое можно найти самое длинное слово в этой книге, чтобы потом сравнить его с аналогом на своём языке.

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

Пример:

Введите текст: Меня зовут Петр
Длина самого длинного слова: 5

Только с помощью FOR и IF
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.10.2021, 08:24
Ответы с готовыми решениями:

Решение задачи по нахождению короткого и длинного слова, удаление слов на гласную букву
Всем привет! Знаю, что части этих задачей есть на форуме, но нужно чтоб всё было в одном коде. Помогите пожалуйста) В заданном...

Найти длину самого короткого слова и самого длинного слова в тексте
Дана символьная строка , содержащая текст , который заканчивается точкой. Найти длину самого короткого слова и самого длинного слова....

Определить порядковые номера самого длинного и самого короткого слова в тексте
Помогите с кодом, но нельзя использовать вектора Задан текст, надо определить порядковые номера самого длинного и самого короткого слова

16
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
04.10.2021, 08:27
Лучший ответ Сообщение было отмечено Catstail как решение

Решение

Python
1
max(text.split(), key=len)
1
0 / 0 / 0
Регистрация: 11.09.2021
Сообщений: 9
04.10.2021, 09:31  [ТС]
Вот таким макаром нужно
Python
1
2
3
4
5
6
7
8
9
10
11
12
string = input('Введите строку: ') 
count=0
result=0
for symbol in string:
  (  Вот здесь скорее всего пустое место для кода)          )
 
   if count > result:
       result = count 
       count = 0
   if count > result:
   result = count
print (result)
0
enx
 Аватар для enx
1190 / 766 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
04.10.2021, 09:34
Цитата Сообщение от roal Посмотреть сообщение
Вот таким макаром нужно
ты имел ввиду НЕ нужно и никогда так не делать?
0
0 / 0 / 0
Регистрация: 11.09.2021
Сообщений: 9
04.10.2021, 09:36  [ТС]
Вот таким макаром нужно, вот код доработать нужно

Python
1
2
3
4
5
6
7
8
9
10
11
string = input('Введите строку: ') #ssbsss
count=0
result=0
for symbol in string:
  
    if count > result:
       result = count 
       count = 0
if count > result:
   result = count
print (result)
0
enx
 Аватар для enx
1190 / 766 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
04.10.2021, 09:37
Цитата Сообщение от roal Посмотреть сообщение
Вот таким макаром нужно, вот код доработать нужно
кому нужно?
0
0 / 0 / 0
Регистрация: 11.09.2021
Сообщений: 9
04.10.2021, 09:39  [ТС]
Имел ввиду, что нужно вот таким способом решить

Добавлено через 53 секунды
Имел ввиду, что нужно таким способом решить, и используя только fоr и if
0
enx
 Аватар для enx
1190 / 766 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
04.10.2021, 09:40
Лучший ответ Сообщение было отмечено Catstail как решение

Решение

roal, ну на

Python
1
2
3
4
5
6
7
8
9
text = input('Введите текст: ').split()
max_len = 0
for word in text:
    word_len = 0
    for letter in word:
        word_len += 1
    if word_len > max_len:
        max_len = word_len
print(f'Длина самого длинного слова: {max_len}')
2
0 / 0 / 0
Регистрация: 24.10.2022
Сообщений: 4
24.10.2022, 14:42
Добрый день. Я тоже сейчас прохожу этот тест в skillbox и ваш ответ оказался самым рабочим. Но вся проблема заключается в том, что тему разрезания строк на части мы еще не проходили и с функцией split я не знаком. А как можно эту задачу решить более топорным методом? В плане я не понимаю, как без разрезания считать до пробела и после. У меня уже башка кипит!
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
24.10.2022, 14:47
Python
1
2
3
4
5
6
7
8
9
10
text = input()
words = []
word = ''
for i in text:
    if i==' ':
        words.append(word)
        word = ''
        continue
    word += i
print(words)
1
0 / 0 / 0
Регистрация: 24.10.2022
Сообщений: 4
24.10.2022, 15:27
Тоже все круто. Но вся проблема заключается в том, что кроме циклов for и while, ну и конечно переменных, мы пока ничего не проходили. Мне не сложно скопировать ваш ответ и послать куратору, но я хочу разобраться на том уровне на котором нахожусь сейчас. А то как то будет не по себе если при любом трудоустройстве посыплюсь
Тут просто получается так, что я не могу понять как мне это все раздельно посчитать.
Вот я написал, как это вижу я.

text = input('Введите строку: ') # привет как твои дела
count = 0
count2 = 0
# Здесь я как бы должен ввести слово и поставить счетчики
for symbol in text:
if symbol != ' '
count += 1 # ну и само собой, змеюка считает все символы кроме пробела
Собственно вопрос заключается в том, как мне с циклами for это все представить и посчитать символы до пробела и после
Так вот на моем уровне я не могу пользоваться всеми теми фишечками, которые вы уже знаете. Я так думаю, что я до них еще доберусь. А мне нужно понять, что на моем уровне я делаю не так.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
24.10.2022, 15:33
Python
1
2
3
4
5
6
7
8
9
10
11
text = input()
maxx = 0
cnt = 0
for i in text:
    if i==' ':
       if cnt>maxx:
           maxx = cnt
       cnt = 0
       continue
    cnt += 1
print(maxx)
1
2431 / 1474 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
24.10.2022, 15:46
iSmokeJC, чуть поправлю.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
text = input()
maxx = 0
cnt = 0
for i in text:
    if i==' ':
       if cnt>maxx:
           maxx = cnt
       cnt = 0
       continue
    cnt += 1
if cnt > maxx:
    maxx = cnt
print(maxx)
2
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
24.10.2022, 15:51
Alexarh, согласен, ага
0
0 / 0 / 0
Регистрация: 24.10.2022
Сообщений: 4
24.10.2022, 16:34
Теперь я обьясню что мне не понятно...

text = input()
maxx = 0
cnt = 0
for i in text:
if i==' ':
#ну тут все ясно, объявляем переменные, запускаем цикл for и спрашиваем видим ли мы в нем ' '
if cnt>maxx:
maxx = cnt
cnt = 0
# как я понимаю выше идет сравнение переменных maxx и cnt, но если я правильно понимаю, то нигде не сработал счетчик переменной и не понятно мне он должен был сработать до пробела или после. Короче для меня переменные maxx и cnt пока равны 0. Оттого и вопрос, что с чем я сейчас сравниваю?
continue
cnt += 1
# почему вдруг в счетчик cnt сейчас добавилось +1?
if cnt > maxx:
maxx = cnt
print(maxx)
# ну и логично что cnt сейчас будет больше чем maxx следовательно есть ли смысл его сейчас засовывать в maxx да еще и распечатывать? Не проще ли было распечатать cnt.


p.s.
Надеюсь ругаться не будете, но как было сказано в фильме Куравлева. Я не очень умный человек, но я думающий дурак. Я понять хочу, разобраться!
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
24.10.2022, 18:19
mr_price, давай начнем с кусков кода. вот самый основной который считает количество букв в слове
Python
1
2
for i in text:
    cnt += 1
теперь нам же нужно понять когда слово заканчивается и начинается другое. признаком окончания считаем пробел. для чего каждый символ сверяем с пробелом
Python
1
if i==' ':
и если символ пробел то сравниваем два значения. если предыдущее меньше то перезаписываем большим и обнуляем счетчик
Python
1
2
3
if cnt>maxx:
           maxx = cnt
       cnt = 0
нам же нужно новое слово считать символы с 0. continue для того что бы проскочить итерацию и не считать пробел за часть слова. ну и в конце когда посчитали длину последнего слова так как пробелов нет и цикл завершен то опять выбираем большее из двух значений
Python
1
2
3
if cnt > maxx:
    maxx = cnt
print(maxx)
1
0 / 0 / 0
Регистрация: 24.10.2022
Сообщений: 4
29.10.2022, 11:34
Прошу прощения, что не написал слова благодарности раньше. работал, на основной работе, даже ноут не открывал. А так спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.10.2022, 11:34
Помогаю со студенческими работами здесь

Разработать программу, осуществляющую поиск самого короткого и самого длинного слова во вводимом тексте
Разработать программу, осуществляющую поиск самого короткого и самого длинного слова во вводимом тексте. С комментами)

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

Поиск в тексте самого длинного слова
Напишите программу для поиска в тексте самого длинного слова.

Определить длину самого длинного слова тексте
Дан текст. Найти длину самого длинного слова

Найти длину самого длинного слова в тексте
Доброго времени суток) Такое задание: Найти длину самого длинного слова в тексте. У меня возникла проблема: при вводе более 3 слов...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru