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

Как ускорить работу (поиск вхождений подстроки)? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Друзья исправьте пожалуйста если что не так http://www.cyberforum.ru/cpp-beginners/thread995320.html
Написать программу, которая переводит число из 2-й системы счисления в 8-ю, не переводя все число в 10-ю . Выполнить отладку программы с помощью какого–либо примера, подготовленного Вами на бумаге....
C++ Передача контейнера set в функцию Всем здравствуйте! Мне нужно написать функцию которая будет выводить всю информацию которая хранится в контейнере set. Пробовал передавать как обычную переменную, не получилось. В интернете... http://www.cyberforum.ru/cpp-beginners/thread995300.html
C++ Пояснить устройство цикла
Я учусь на программиста уже третий месяц, но до сих пор не понимаю основ. Проблема преподов в том, что они объясняют материал для тех, кто уже программировал. Но мне не понятно самое элементарное....
C++ Разбитие кода на отдельные части
#include <iostream> #include <conio.h> #include <ctime> int sec(0); int minu(0); int chas(0); int B = 1; int sok;
C++ одномерный массив http://www.cyberforum.ru/cpp-beginners/thread995278.html
В общем нужно чтобы программа считывала массив из файла, и находила максимальный из отрицательных элементов и меняла его местами с первым. В общем программа работает не очень корректно. Подскажите...
C++ Матрица. Как написать код? Задача Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размера NxN по часовой стрелке, начиная с блока в левом верхнем углу. Нужно написать код на... подробнее

Показать сообщение отдельно
zeratul47
0 / 0 / 0
Регистрация: 02.11.2013
Сообщений: 6

Как ускорить работу (поиск вхождений подстроки)? - C++

02.11.2013, 12:12. Просмотров 641. Ответов 11
Метки (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//подсчет kf
int NumberKF(string &P, vector<string> & F, const int f){
    int kf =0;
    for(size_t i = 0; i < f; ++i){                  //обход по всем строкам
        for(size_t j = 0; j < F[i].size() - P.size() +1; ++j){      //по всем подстрокам длины l
            bool b = true;
            for(int g = 0; g < P.size(); ++g){                      //проверка входжения
                if ((P[g] != F[i][j+g]) && (P[g] != 'N')){
                    b = false;
                                        break;
                }
            }
            if (b) {++kf;}          //если да то увеличиваем kf
        }
    }
    return kf;
}
Ищем возможные вхождения подстроки P в массиве строк F. Символ N в контексте задачи - джокер, т.е. может "являться" любым другим символом.
Например:
AATCGT
ANNCGN
Такие подстроки совпадут.
Вопрос: могу ли я как-то ускорить работу этой функции, не переходя к использованию char*?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru