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 |
| 648 | Develop | [c++] mfc 기반 레지스트리(registry) 컨트롤 예제 코드 2 | hooni | 2013.04.23 | 17191 |
| 647 | Develop |
[c++] mfc 기반 멀티수납(wall)시스템 소스와 실행파일
|
hooni | 2013.04.23 | 8397 |
| 646 | Develop | 다운 받아서 테스트 해볼것.. | hooni | 2013.04.23 | 10291 |
| 645 | Develop |
[c++] mfc로 만든 현재 디렉토리 읽어오기/세팅하기 (GetCurrentDirectory/SetCurrentDirectory)
|
hooni | 2013.04.23 | 9493 |
| 644 | Develop |
[c#] BFilter 툴바 소스 코드 ㅎㅎ
|
hooni | 2013.04.23 | 8745 |
| 643 | Develop |
[c#] MS IE(Internet Explorer) 툴바 버튼 예제 2003/2005 두가지 버전
|
hooni | 2013.04.23 | 2090 |
| 642 | Develop |
[c] 네트워크 트래릭 모니터링.. 졸업작품..
2 |
hooni | 2013.04.23 | 13402 |
| 641 | Develop |
[c] 텍스트 파일(로그)을 정해진 라인 단위로 쪼개주는 코드
|
hooni | 2013.04.23 | 8725 |
| 640 | Develop |
[c#] mfc 기반의 웹서비스 서버/클라이언트 샘플과 예제 소스
|
hooni | 2013.04.23 | 2073 |
| 639 | Develop | [c++] Win32API를 이용한 ExitWindowsEx 사용한 예제코드 | hooni | 2013.04.23 | 9313 |
| 638 | Develop |
[c#] BHO 한샘툴바랑 동현툴바..
|
hooni | 2013.04.23 | 2208 |