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

нужно найти наибольшую общую подстроку - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Рускоязычные дирректории http://www.cyberforum.ru/cpp-beginners/thread551909.html
Подскажите, пожалуйста, почему при попытке открыть файл в консольном приложении, который лежит в рускоязычной дирректории, выбивает ошибку?
C++ Задать 3 массивы... Задать 3 массивы размерностью 5, с настоящими, символьными и целыми элементами, путем введения их с клавиатуры. Cформуваты двоичный файл из элементов этих массивов и прочитать 4 значения из... http://www.cyberforum.ru/cpp-beginners/thread551907.html
Проверка на то, что введено число... C++
Здравствуйте, вот у меня есть простенькая программа суть которой: из пяти чисел введенных с клавиатуры она должна находить два четных и показывать их НОД (код будет ниже). С этим проблем не возникло,...
WMI & C++ (связан и с делфи) C++
Уважаемые программисты! Очень нужна помощь! Я никак не могу найти кроме мсдн примера использования ВМИ в С++, мсдн вариант у меня эррорит и не совсем понятно как получить несколько параметров класса!...
C++ Скрытое приложение (без графического отображения (даже консоли),) http://www.cyberforum.ru/cpp-beginners/thread551881.html
Использую VS2010. Нужно написать приложение, неважно какое, но что бы у него не было никакого графического отображения (даже консоли), а так же что бы его не было на панели задач. Подскажите, как это...
C++ Простенькая задача на строки Дана строка, в которой слова разделены одним пробелом. Напечатать слово максимальной длины, в котором нет символов цифр (считается, что такое слово только одно). Буду благодарен, если поможете с... подробнее

Показать сообщение отдельно
Zarik
3 / 3 / 0
Регистрация: 26.03.2012
Сообщений: 22

нужно найти наибольшую общую подстроку - C++

18.04.2012, 17:51. Просмотров 703. Ответов 0
Метки (Все метки)

вот код
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
void GetLargestCommonSubstring(string & result, const string & a, const string & b) {
    const int a_size = a.size();
    const int b_size = b.size();
 
    typedef vector<int> solution;
 
    const int solution_size = b_size + 1;
    solution x(solution_size, 0), y(solution_size);
 
    solution * previous = &x;
    solution * current = &y;
 
    int max_length = 0;
    int result_index = 0;
 
    for(int i = a_size - 1; i >= 0; i--) {
        for(int j = b_size - 1; j >= 0; j--) {
            if(a[i] != b[j]) {
                (*current)[j] = 0;
            }
            else {
                const int length = 1 + (*previous)[j + 1];
                if (length > max_length) {
                    max_length = length;
                    result_index = i;
                }
 
                (*current)[j] = length;
            }
        }
 
        swap(previous, current);
    }
 
    result = a.substr(result_index, max_length);
}
я начинаюший, мне нужно просто перевести код с++ в с, а то я Этого не понимаю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru