Решение задачи "Самое длинное слово" с Mccme

С пояснением   Просмотров: 9


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

Код

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int k = 0;
    string s, res;
    getline(cin, s);
    s.insert(0, 1, ' ');
    s += " ";
    int pos = s.find(" "), pos1;
    while(pos + 1){
        pos1 = s.find(" ", pos + 1);
        if(pos1 - pos > k){
            k = pos1 - pos;
            res = s.substr(pos + 1, pos1 - pos - 1);
        }
        pos = pos1;
    }
    cout << res << endl << res.size();
    return 0;
}

         

 Администратор Photo Автор: Администратор


вводим три строки s и s1 и a;
сразу присваиваем им пустое значение s=""; s1="";
введем переменные счетчики l,i,n=0,m=0 целочисленного типа
читаем строку a (в С++ getline(cin,a);)
переменной l присваем длинну строки a(В С++ l=strlen(a);)
Пробегаем c 0 до l с счетчиком i и проверяем
если i-ый элемент строчки не равен пробелу, то
соединяем строчку s1 и i-ый элемент строки a в строчку s1
к n прибавляем 1;
если иначе то
проверяем если n>m то
s=s1;
m=n;
после проверки
n=0;
s1="";
теперь когда цикл закончился, делаем предыдущую проверку опять
выводим s и с новой строчки m

Отправить решение задачи
Чтобы отправить решение вам нужно войти в систему или зарегистрироваться

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться