Develop
2013.04.23 15:42
[c] kmp 활용 search
조회 수 8520 댓글 0
| 첨부 '1' |
|---|
예제 코드
#include <stdio>
#include <string>
char str[100005];
char comp[1005];
int pi[1005];
inline bool process()
{
int i;
int l , l2 , k;
l = strlen(comp) - 1;
// Pi 배열 생성 ; O(m)
pi[1] = 0;
k = 0;
for(i=2; i<=l; i++)
{
while(k>0 && comp[k + 1]!=comp[i])
{
k = pi[k];
}
if(comp[k + 1] == comp[i]) k++;
pi[i] = k;
}
// KMP 활용
l2 = strlen(str) - 1;
k = 0;
for(i = 1; i <= l2; i++)
{
while(k>0 && comp[k + 1]!=str[i])
{
k = pi[k];
}
if(comp[k + 1] == str[i]) k++;
if(k == l) return 1;
}
return 0;
}
int main()
{
int tn , n , i;
scanf("%d" , &tn);
while(tn--)
{
scanf("%s" , str + 1);
str[0] = ' ';
scanf("%d" , &n);
for(i = 1; i <= n; i++)
{
scanf("%s" , comp + 1);
comp[0] = ' ';
printf("%c\n" , (process()) ? 'y' : 'n');
}
}
return 0;
}
| 번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|---|
| 589 | Develop | [js] 네이버에서 그림 퍼올 때.. URL Encoding 관련ㅋㅋ | hooni | 2013.04.23 | 8679 |
| 588 | Develop | [linux] 날짜나 파일의 내용으로 검색하는 방법(find 명령 사용) | hooni | 2013.04.23 | 9972 |
| 587 | Develop |
[c++] 현승이가 준 메신저 소스.. ㅋㅋ
|
hooni | 2013.04.23 | 9222 |
| 586 | Develop | [c] 아파치 모듈(Apache Module) 만들기 | hooni | 2013.04.23 | 10016 |
| 585 | Develop |
[c++] MFC로 만든 디렉토리/파일 파인더
|
hooni | 2013.04.23 | 10384 |
| 584 | Develop |
[c++] 데이터 압축 프로그램 소스 (lzw)
|
hooni | 2013.04.23 | 12015 |
| 583 | Develop |
[c++] 압축프로그램(Lite Zip) 샘플
|
hooni | 2013.04.23 | 9582 |
| 582 | Develop |
[c#] HTML 이벤트 샘플 소스..
|
hooni | 2013.04.23 | 9187 |
| 581 | Develop |
[c++] 중복실행 방지(Mutex;뮤텍스 ) 샘플 소스.. ㅋㅋ
|
hooni | 2013.04.23 | 10178 |
| 580 | Develop |
[c#] 툴바 현재 욜심히 만들고 있는거.. 백업용.. ㅋㅋ
|
hooni | 2013.04.23 | 2852 |
| 579 | Develop |
[c#] 툴바 최근 버전(IE6, IE7 두가지 버전)
|
hooni | 2013.04.23 | 2138 |
| 578 | Develop | [c] 시간(요일,날짜 포함) 출력하는 프로그램 초간단 코드 | hooni | 2013.04.23 | 8516 |