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

Нахождение наибольшей общей подстроки! - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ MPI_Comm_split http://www.cyberforum.ru/cpp-beginners/thread1081757.html
#include <mpi.h> #include <conio.h> #include <iostream> using namespace std; int main(int argc,char **argv) { MPI_Init(&argc,&argv); MPI_Comm A,B,C; int rank,size,result,newrank; A=MPI_COMM_WORLD;
C++ Хочу научиться программировать на C++ Хочу научиться программировать на C++ но незнаю с чего начать? Подскажите пожалуйста http://www.cyberforum.ru/cpp-beginners/thread1081696.html
Vector - как сравнить записанные строки? C++
Здравствуйте. std::vector<std::string> g_Test; g_Test.push_back("One"); g_Test.push_back("Two"); g_Test.push_back("Three"); Есть строка: char *sTest;
Математическая задача на C++ C++
И снова я. Пожалуйста помогите переделать программу на нужную. Суть задачи такова: С клавиатуры вводится радиус окружности с центром в начале координат. Найти координаты точек пересечения окружности с синусоидой на промежутке от 0 до π и сформировать из них множество А. Я имею код в котором программа работает аналогично, но вместо синусоиды у нее парабола. Нужно изменить. Я вас очень...
C++ Две матрицы размером 5 * 5. Найти детерминант их суммы, а также наименьшие и наибольшие элементы http://www.cyberforum.ru/cpp-beginners/thread1081640.html
Так сложилось что в понедельник нужно сдать эту лабораторную работу иначе меня исключат из университета, а так как я не очень разбираюсь с массивами то у меня большая проблема. Пожалуйста помогите неопытному студенту решить эту задачу. p.s.\если не сложно то напишите комментарии к программе. Спасибо к отозвавшимся. C++ С клавиатуры задаются две матрицы размером 5 * 5. Найти детерминант их...
C++ Размер массива Здрасте. Такой вопрос.Можно ли каким то образом вывести число элементов массива,то есть его размер? Допустим int arr; Программа должна вывести размер "5". подробнее

Показать сообщение отдельно
Sergey_Chizhov
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 30
26.01.2014, 12:22     Нахождение наибольшей общей подстроки!
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/*
Найти наибольшую общую подстроку у всех строк. 
Всего k строк(1<=k<=10).
В каждой строке не более 10000 символов(маленькие латинские буквы).
Изначально вводится кол-во строк(k), далее сами строки.
 
Ограничения: ОЗУ<=512мб,
             время <= 1с
----------------------------------------------------------------------------
 
Алгоритм 1:
 Находим наименьшую строку и разбиваем её на всевозможные подстроки.
 Далее сравниваем подстроки, начиная с самых больших.
 Если находим общую подстоку у всех строк, то
 проверяем остальные подстроки с длинной 1-ой нашедшейся подстроки
 (если есть другие подстроки с такой же длинной, то это тоже ответ)
 выходим из цикла.
 ---------------------------------------------------------------------------
 
Алгоритм 2:
 Находим наименьшую строку.
 Начинаем сравнивать строки(с наименьшей) посимвольно.
 Как только находим общий символ для всех строк -> заносим в buffer_1.
 Ищем следующий за ним символ во всех строках, если находим -> добавляем в buffer_1.
 Если не находим следующий символ, то ищем следующий, если нашли -> записываем в buffer_2
 и т.д. пока не закончаться символы наименьшей строки.
 
 Далее сравниваем длину буфферов и выводим наибольший/наибольшии.
 
 
реализация 1-ого алгоритма
*/
 
#include "std_lib_facilities.h"
#include "string.h"
 
 
const int  MAX=10000;
 
int main()
{
    cout<<"Input kol-vo strok(1-10): ";
    int nrow;
    cin>>nrow;
    char** Mas = new char *[nrow];
    for (int i=0;i<nrow;i++) 
        Mas[i]=new char [MAX];
    cout<<"Input stroki:\n";
    int min_len=10000;
    for(int i=0; i<nrow; i++){
         cin>>Mas[i];
    //   if (strlen(Mas[i])<min_len) 
    //       min_len=srtlen(Mas[i]);
    }
    //cout<<min_len;
 
        
    keep_window_open();
    return 0;
}
Выскажите свои мысли по поводу лучшего решения(алгоритма), предложите свой.

Как найти длину наименьшей строки в данном массиве char???
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru