0 / 0 / 0
Регистрация: 11.09.2021
Сообщений: 9

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

04.10.2021, 08:24. Показов 23297. Ответов 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
1189 / 765 / 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
1189 / 765 / 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
1189 / 765 / 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
5224 / 3471 / 1173
Регистрация: 21.03.2016
Сообщений: 8,298
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru