Develop
2013.04.23 15:42
[c] kmp 활용 search
조회 수 7427 댓글 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; }
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|---|
841 | Develop |
'2014 모바일 개발 트렌드' 발표자료입니다.
![]() |
hooni | 2014.10.02 | 1110 |
840 | Develop | Aspect Oriented Programming in Objective-C | hooni | 2015.05.18 | 900 |
839 | Develop |
DDay Memo 1.9.4 소스코드
![]() |
hooni | 2015.10.03 | 0 |
838 | Develop |
GCM 사용하기 2 (단말에 GCM 구현하기)
![]() |
hooni | 2013.07.06 | 23365 |
837 | Develop |
GCM 사용하기 3 (JSP로 GCM 푸시 서버 만들기)
4 ![]() |
hooni | 2013.07.06 | 25396 |
836 | Develop | git 브런치 배우기 (링크) | hooni | 2013.07.09 | 20670 |
835 | Develop |
GPL, AGPL, MPL,.. 한눈에 보는 오픈소스SW 라이선스
![]() |
hooni | 2014.10.14 | 1238 |
834 | Develop | How to Test SMTP AUTH using Telnet | hooni | 2018.04.05 | 1542 |
833 | Develop |
JSON, BSON 변환
![]() |
hooni | 2013.04.23 | 11853 |
832 | Develop | Laravel 5 Failed opening required bootstrap/../vendor/autoload.php | hooni | 2018.01.24 | 1800 |
831 | Develop |
Mac OS 에 Jenkins 설치하기 (Homebrew)
2 ![]() |
hooni | 2017.03.15 | 8326 |
830 | Develop |
macOS에 node, npm 설치하기 (homebrew)
![]() |
hooni | 2021.11.06 | 1391 |