Develop
2013.04.23 15:42
[c] kmp 활용 search
조회 수 8429 댓글 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;
}
| 번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|---|
| » | Develop |
[c] kmp 활용 search
|
hooni | 2013.04.23 | 8429 |
| 528 | Develop |
[c] 문자열 str_shift 예제..
|
hooni | 2013.04.23 | 8622 |
| 527 | Develop |
[c++] winsock을 이용한 서버,클라이언트와 ssl서버,클라이언트
|
hooni | 2013.04.23 | 9039 |
| 526 | Develop |
[c++] mfc이용한 트레이아이콘(TrayIcon) 클래스 예제 프로젝트
|
hooni | 2013.04.23 | 10303 |
| 525 | Develop |
[c++] mfc 이용한 트레이아이콘(TrayIcon) 클래스 예제 프로젝트
|
hooni | 2013.04.23 | 9871 |
| 524 | Develop | [c++] mfc 이용한 기본적인 형변환 예제 | hooni | 2013.04.23 | 12623 |
| 523 | Develop | [c++][mfc] 파일 입출력 샘플 (한줄씩 읽어서 다른 파일에 쓰기) | hooni | 2013.04.23 | 16214 |
| 522 | Develop | [c++] mfc 파일 한줄씩 읽기.. ㅋㅋ | hooni | 2013.04.23 | 29693 |
| 521 | Develop | [c++] mfc 간단한 파일 입출력 예제 | hooni | 2013.04.23 | 15046 |
| 520 | Develop |
[c++] mfc 조건별 파일 검색 프로그램 소스 ㅋㅋ
19 |
hooni | 2013.04.23 | 12469 |
| 519 | Develop |
[c#] 본현이형 논문 자료 (HIDS)ㅋㅋ
|
hooni | 2013.04.23 | 9203 |
| 518 | Develop |
참고하고 지울 자료.. 집에서 바야지.. ㅋㅋ
|
hooni | 2013.04.23 | 14153 |