Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DefunctCooler
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 15
#1

Дан список слов. Найти наиболее длинную последовательность слов, чтобы конец предыдущего совпадал с началом следующего - C++

20.06.2013, 12:34. Просмотров 482. Ответов 1
Метки нет (Все метки)

Дан список слов. Найти наиболее длинную последовательность слов, чтобы конец предыдущего совпадал с началом следующего.
Помогите с алгоритмом программы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2013, 12:34     Дан список слов. Найти наиболее длинную последовательность слов, чтобы конец предыдущего совпадал с началом следующего
Посмотрите здесь:
Дан список слов различной длины. Составить программу упорядочения списка слов: По их длине; По алфавиту C++
C++ Дана последовательность слов. Найти кол-во слов начинающихся с d и кончающихся буквой w
В последовательности найти наиболее длинную последовательность подряд идущих нулей C++
C++ Дан массив слов. Определить количество слов массива, которые не являются «перевертышем».
Дан список слов, разделенных между собой пробелами C++
C++ Использование библиотеки STL , контейнер string. Дан массив слов.Надо удалить все цифры из слов
Поиск слов, совпадающих с началом алфавита C++
C++ Вывести список слов в порядке убывания количества вхождений слов
Стек: создать список из слов, подсчитать количество слов, совпадающих с последним словом C++
Дан файл. В новый файл записать самую длинную фразу и фразу с наибольшим количеством слов C++
C++ Введенное предложение обработать так, чтобы его последовательность слов напечатать в обратном порядке
C++ Дан текст, состоящий не менее чем из пяти слов. Сформировать стек из тех слов, в которых присутствует буква "Е"

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
1644 / 1272 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
20.06.2013, 13:37     Дан список слов. Найти наиболее длинную последовательность слов, чтобы конец предыдущего совпадал с началом следующего #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <string>
#include <fstream>
#include <iostream>
#include <deque>
 
int main()
{
    std::ifstream ifs("in.txt");
    if(ifs.is_open())
    {
        std::deque<std::string> deqres, deqtmp;
        std::string str;
        while(ifs >> str)
        {
            if(!deqtmp.empty() && (deqtmp.back()[deqtmp.back().size() - 1] != str[0]))
            {
                if(deqtmp.size() > deqres.size())
                    deqres = deqtmp;
                deqtmp.clear();
            }
            deqtmp.push_back(str);
        }
        ifs.close();
        for(auto const& val : deqres.size() >= deqtmp.size() ? deqres : deqtmp)
            std::cout << val << '\n';
    }
    else
        std::cerr << "Unable to open input file\n";
    return 0;
}
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru