0 / 0 / 0 Регистрация: 31.01.2013 Сообщений: 4 |
|
1 |
|
Самое длинное слово31.01.2013, 21:37. Показов 37699. Ответов 5
Дано предложение. Напечатать его самое длинное слово.
0 |
Hrobak 292 / 172 / 47 Регистрация: 22.03.2010 Сообщений: 488 |
||||
31.01.2013, 22:58 |
2 |
|||
Python 2.7:
0 |
accept 4865 / 3287 / 468 Регистрация: 10.12.2008 Сообщений: 10,570 |
||||
01.02.2013, 01:51 |
3 |
|||
Решение
2 |
Lolka555 3 / 3 / 0 Регистрация: 20.10.2020 Сообщений: 25 |
||||
30.11.2020, 18:43 |
4 |
|||
Если простенько!
1 |
Semen-Semenich 4611 / 3148 / 1112 Регистрация: 21.03.2016 Сообщений: 7,838 |
||||
30.11.2020, 19:02 |
5 |
|||
3 |
Lolka555 3 / 3 / 0 Регистрация: 20.10.2020 Сообщений: 25 |
||||
21.12.2020, 11:16 |
6 |
|||
0 |
How can I use python to find the longest word from a set of words?
I can find the first word like this:
'a aa aaa aa'[:'a aa aaa aa'.find(' ',1,10)]
'a'
rfind is another subset
'a aa aaa aa'[:'a aa aaa aa'.rfind(' ',1,10)]
'a aa aaa'
asked Jul 28, 2009 at 9:10
2
If I understand your question correctly:
>>> s = "a aa aaa aa"
>>> max(s.split(), key=len)
'aaa'
split()
splits the string into words (seperated by whitespace); max()
finds the largest element using the builtin len()
function, i.e. the string length, as the key to find out what «largest» means.
answered Jul 28, 2009 at 9:15
balpha♦balpha
49.8k18 gold badges109 silver badges131 bronze badges
0
Here is one from the category «How difficult can you make it», also violating the requirement that there should be no own class involved:
class C(object): pass
o = C()
o.i = 0
ss = 'a aa aaa aa'.split()
([setattr(o,'i',x) for x in range(len(ss)) if len(ss[x]) > len(ss[o.i])], ss[o.i])[1]
The interesting bit is that you use an object member to maintain state while the list is being computed in the comprehension, eventually discarding the list and only using the side-effect.
But please do use one of the max() solutions above .
answered Jul 28, 2009 at 9:53
ThomasHThomasH
22.1k13 gold badges60 silver badges61 bronze badges
1
I thought it meant more like (code below) which outputs the longest word in the string. In this case it is «sentence» however, simply change return(len(s)) which would output howmany characters are in the longest word which would be 8.
def longest_word(text):
s = max(text.split(), key = len)
return(s)
if __name__ == "__main__":
print(longest_word("This is a sentence with words and such."))
Flair
2,5191 gold badge27 silver badges40 bronze badges
answered Sep 5, 2021 at 0:22
Another way to find longest word in string:
a="a aa aaa aa"
b=a.split()
c=sorting(b,key=len)
print(c[-1])
answered Jan 21, 2017 at 10:44
RohitRohit
194 bronze badges
def largest_word(sentence):
split_sentence = sentence.split(' ')
largest_word = ''
for i in range(len(split_sentence)):
if len(split_sentence[i]) > len(largest_word):
largest_word = split_sentence[i]
print(largest_word)
sentence = "Improve your coding skills with python"
largest_word(sentence)
answered Aug 14, 2018 at 18:39
Вот код, который находит в строке все слова и заносит их в список, а потом печатает эти слова в столбец, как найти самое длинное из этих слов?
list = str(input()).split()
for i in list:
print(i)
print("")
print(list)
задан 2 июн 2017 в 7:19
2
Можно использовать функцию max
, и всё получается просто в 1 строку:
list = str(input()).split()
print(max(list, key=len))
Документация
Рабочий пример
ответ дан 2 июн 2017 в 7:25
TheMY3TheMY3
9,0632 золотых знака16 серебряных знаков34 бронзовых знака
4
Или так:
sentense = "какое-либо предложение"
words = dict()
for word in sentense.split(" "):
words[len(word)] = word
biggest_word = words[max(words)]
print(biggest_word)
MarianD
14.1k3 золотых знака18 серебряных знаков29 бронзовых знаков
ответ дан 17 сен 2020 в 13:07
1
Если использовать lambda-функцию, то примет следующий вид:
print (lambda list: (max(list, key=len)))(str(input()).split())
Еще вариант на коленке через сортировку:
print sorted(str(input()).split())[-1]
ответ дан 2 июн 2017 в 9:36
Eugene DennisEugene Dennis
2,4721 золотой знак8 серебряных знаков14 бронзовых знаков
txt = input()
txt_list=txt.split()
len_list=[]
dict={}
for i in txt_list :
len_list.append(len(i))
for l, t in zip (len_list ,txt_list ):
dict[l]=t
print(dict[max(len_list) ])
ответ дан 21 дек 2022 в 15:03
ValeryValery
111 бронзовый знак
2
Перейти к содержанию
На чтение 1 мин Просмотров 5.7к. Опубликовано 9 декабря, 2021 Обновлено 9 декабря, 2021
Паоло изучает русский язык: занимается по учебникам, читает книги, слушает музыку. Особенно Паоло понравилась книга “Преступление и наказание”. И ему стало интересно, как найти самое длинное слово в этой книге, чтобы потом сравнить его с аналогом на своём языке.
Напишите программу, которая получает на вход текст и находит длину самого длинного слова в нём. Слова в тексте разделяются одним пробелом.
Пример:
Введите текст: Меня зовут Петр
Самое длинное слово, букв: 5
Что оценивается
Задание считается успешно выполненным, если:
- результат вывода соответствует условию;
- input содержит корректное приглашение для ввода;
- вывод содержит описание результата (выведенные числа сопровождаются текстовым описанием);
Решение задачи:
text = input('Введите строку: ')
count = 0
long_word = 0
for symbol in text:
if symbol != ' ':
count += 1
else:
if (count > long_word):
long_word = count
count = 0
print(long_word)
( 61 оценка, среднее 1.51 из 5 )
Перейти к содержанию
Самое длинное слово в строке
Просмотров 24.6к. Обновлено 15 октября 2021
Вводится строка слов, разделенных пробелами. Найти самое длинное слово и вывести его на экран. Случай, когда самых длинных слов может быть несколько, не обрабатывать.
Следует ввести счетчик букв в слове. В цикле по символам строки пока очередной символ не пробел, счетчик увеличивается. Как только встречается пробел, следует сравнить значение счетчика со значением, записанным в переменной для хранения размера самого длинного слова. Если слово, которое сейчас было «измерено», длиннее, то записать его длину в эту переменную. Кроме того, надо запомнить индекс начала этого слова. Он определяется вычитанием длины слова из текущего индекса.
После того, как очередное слово было обработано, надо сбросить счетчик букв на 0.
Поскольку последнее слово может не оканчиваться пробелом, то оно будет не учтено. Поэтому после цикла надо проверить текущее значение счетчика букв.
Поскольку нам известны начало самого длинного слова в строке и его длина, то надо вывести на экран часть строки от первой буквы на длину слова. В каждом языке программирования это может быть реализовано по-разному.
Pascal
Вывести самое длинное слово в строке паскаль
var
s: string;
i, id, len, max, count: byte;begin
readln(s);
len := length(s);
max := 0; // длина самого длинного слова
id := 0; // индекс начала самого длинного слова
count := 0;
for i:=1 to len do
if s[i] <> ' ' then
count := count + 1
else begin
if count > max then begin
max := count;
id := i - count;
end;
count := 0
end;if count > max then begin // проверка последнего слова
max := count;
id := len - count + 1;
end;writeln(copy(s,id,max));
end.
one two three four five six seven
three
Язык Си
#include < stdio.h>
#include < string.h>
main() {
char s[100];
int i, id, max, count, len;
gets(s);
len = strlen(s);
max = 0;
id = 0;
count = 0;
for (i=0; i< len; i++)
if (s[i] != ' ') count += 1;
else {
if (count > max) {
max = count;
id = i - count;
}
count = 0;
}if (count > max) {
max = count;
id = i - count;
}
max += id;
for (i=id; i< max; i++)
putchar(s[i]);
printf("n");
}
Python
найти самое длинное слово в строке python (питон)
# Вариант 1 - классический алгоритм
s = input()
l = len(s)
m = 0
ind = 0
count = 0
for i in range(l):
if s[i] != ' ':
count += 1
else:
if count > m:
m = count
ind = i - count
count = 0if count > m:
m = count
ind = i - count + 1print(s[ind:ind+m])
# Вариант 2 - с помощью встроенных функций и методов
s = input()
s = s.split()
print(max(s, key=len))
КуМир
алг самое длиное слово
нач
лит s
цел i,id,len,mx,count
ввод s
len := длин(s)
mx := 0
id := 0
count := 0
нц для i от 1 до len
если s[i] <> " " то
count := count + 1
иначе
если count > mx то
mx := count
id := i - count
все
count := 0
все
кц
если count > mx то
mx := count
id := len - count
все
вывод s[id:id+mx]
кон
Basic-256
input s$
l = length(s$)
m = 0
id = 0
c = 0
for i=1 to l
b$ = mid(s$,i,1)
if b$ <> " " then
c = c + 1
else
if c > m then
m = c
id = i -c
endif
c = 0
endif
next iif c > m then
m = c
id = i-c
endifprint mid(s$,id,m)