Решения задач acmp.ru
Главная
Вход
Регистрация
Воскресенье, 09.08.2020, 21:10Приветствую Вас Гость | RSS
Меню сайта

Категории раздела
Pascal [121]
C++ [76]

Поиск

Мини-чат
200

Легкий заработок!

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Файлы » C++

0202 Поиск подстроки

Скачать файл можно после просмотра рекламы:

16.06.2012, 19:12
#include<cstdio> 
#include<cstring> 
#include<cstdlib> 
#include<iostream> 
#include<string> 

using namespace std; 
string s,ss; 
int i,j,p[100050],n,n1; 
char tmp[100050]; 
int main() 
freopen("input.txt","r",stdin); 
freopen("output.txt","w",stdout); 
scanf("%s\n",tmp);s = string(tmp); 
scanf("%s",tmp);ss = string(tmp); 
s = ss + "$" + s; 
n1 = ss.size(); 
n = s.size(); 
for (i = 1; i < n;i++) 
j = p[i - 1]; 

while (j > 0 && s[i] != s[j]) 
j = p[j-1]; 

if (s[i] == s[j]) 
p[i] = j + 1; 
for (i = 0; i < n; i++) 
if (p[i] == n1) printf("%d ",i - 2 * n1); 
return 0; 
Категория: C++ | Добавил: shum
Просмотров: 2528 | Загрузок: 0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Это интересно!


Copyright MyCorp © 2020