Esempio n. 1
0
int main(){
    scanf("%d%d%s", &n, &m, str);
    
    for(int i=0; i<m; i++)
        printf("%c", str[n+i]=kmp(n+i));
    puts("");
    
    return 0;
}
int main()
{
    char str[MX] = "AABCA", p[MX] = "AAA";

    int res = kmp(str,strlen(str), p, strlen(p));

    printf("匹配第一个开始位置:%d\n", res);

    return 0;
}
Esempio n. 3
0
int main(){
    char s[]="BBC ABCDAB ABCDABCDABDE";
    char t[]="ABCDABD";
    int  ss =sizeof(s)/sizeof(s[0]);
    int  ts =sizeof(t)/sizeof(t[0]);
    printf("%s : %d\n", s, ss);
    printf("%s : %d\n", t, ts);
    printf("%d\n",kmp(s,ss,t,ts));
    return 0;
}
Esempio n. 4
0
int main(int argc, char **argv)
{
  if (argc < 2){
    return 0;
  }

  printf("index: %d\n", kmp(argv[1], argv[2]));

  return 0;
}
Esempio n. 5
0
int main(){
    int cas;while(~scanf("%d",&cas)){
        while(cas--){
            scanf("%s%s",str2,str1);
            int ans=kmp(str1,str2);
            printf("%d\n",ans);
        }
    }
    return 0;
}
Esempio n. 6
0
int main()
{
	char s[MAX], t[MAX];
	printf("Please input:\n");
	scanf("%s", s);
	scanf("%s", t);
	printf("Output:\n");
	printf("%d\n", kmp(s, t));
	return 0;
}
Esempio n. 7
0
File: TaskG.cpp Progetto: xyiyy/icpc
		void solve(std::istream& in, std::ostream& out) {
			int t;
			in>>t;
			while(t--){
				in>>a;
				in>>b;
				n = strlen(a), m = strlen(b);
				getp();
				out<<kmp()+1<<endl;
			}
		}
Esempio n. 8
0
    bool isMatch(string s, string p) {
        if (shrinkString(s, p)) {
            dividePattern(p);
            int t = sub.size();
            for (int i = 0; i < t; i++) 
                if (!kmp(i, s))
                    return false;
            return true;
        }
		return false;
    }
Esempio n. 9
0
int LCS(char *s1, int l1, char *s2, int l2, int &ansi, int &ansj)
{
    int i,j,k,l,ans=0; ansi=0; ansj=0;
    for(i=0; i<l1-ans; i++)
    {
        makefail( s1+i, l1-i );
        kmp( s2, l2, s1+i, l1-i, 0, l, j);
        if(l>ans) { ans=l; ansi=i; ansj=j; }
    }
    return ans;
}
Esempio n. 10
0
int main(void){
    int N;
    scanf("%d",&N);
    while(N--){
        scanf("%s",W);
        scanf("%s",T);
        getNext();
        printf("%d\n",kmp());		
    }
    return 0;
}
Esempio n. 11
0
int main()
{
    int T = 0, N = 0, M = 0;
    scanf("%d", &T);

    while(T--){
        scanf("%s", Pattern);
        scanf("%s", Target);
        printf("%d\n", kmp(strlen(Target), strlen(Pattern)));
    }
}
Esempio n. 12
0
void main()
{
	int *x;
	char *sub;
	char *str;

	clrscr();
	strcpy(sub, "live");
	strcpy(str, "I will live forever, or die trying.");
	kmp(str, sub);
	getch();
}
Esempio n. 13
0
int main(int argc, char *argv[])
{
    size_t table[32];
    size_t rc;
    char *key = "test";
    char *str = "this is a test";

    rc = kmp(key, table, strlen(key), str, strlen(str));
    assert(rc == 10);

    return 0;
}
Esempio n. 14
0
int
main(int argc, char **argv)
{
	int tests;
	scanf("%d", &tests);
	while(tests--) {
		init();
		get_next();
		kmp();
		printf("%d\n", count);
	}
}
Esempio n. 15
0
int main (void )
{
	int i, n, l;
	scanf ("%d", &n);
	scanf ("%s", s);
	scanf ("%s", t);
	for (i=0;i<n;i++) t[i+n]=t[i];
	t[2*n]='\0';
	l = kmp (t, s);
	printf ("%d\n", l);
	return 0;
}
Esempio n. 16
0
int main(int argc, char *argv[])
{
    size_t table[32];
    size_t rc;
    char *key = "12";
    char *str = "11111111121111";

    rc = kmp(key, table, strlen(key), str, strlen(str));
    assert(rc == 8);

    return 0;
}
Esempio n. 17
0
File: kmp.cpp Progetto: wyjie/demo
int main()
{
        std::string pattern = "ababaca";
        KMP kmp(pattern);
        std::string text = "abababaca";
        int offset = kmp.search(text);

        std::cout << text << std::endl;
        for (int i = 0; i < offset; i++)
                std::cout << " ";
        std::cout << pattern << std::endl;
}
Esempio n. 18
0
int main(int argc, const char *argv[])
{
	char target[] = "ABC ABCDAB ABCDABCDABDE";
	char *ch = target;
	char pattern[] = "ABCDABD";
	int i;

	i = kmp(target, strlen(target), pattern, strlen(pattern));
	if (i >= 0)
		printf("matched at: %d\n", i);
	return 0;
}
Esempio n. 19
0
int main(int argc, char** argv){
	if(argc!=3){
		printf("Usage: %s <fasta file> <pattern>\n",argv[0]);
		exit(-1);
	}

	for(auto pair_it: read_file(argv[1])){
		const char* needle = argv[2];
		const char* haystack = pair_it.second.c_str();

		kmp(haystack, pair_it.second.length(), needle, pair_it.first.length());
	}
}
Esempio n. 20
0
main(){
    int N;
    char P[10001], T[1000001];

    scanf("%d", &N);

    while ( N-- ) {
        scanf("%s%s", P, T); 
        kmp(T, P);
    }

    return 0;
}
Esempio n. 21
0
void main()
{
	char t[20],p[20],i;
	printf("Enter String");
	scanf("%s",t);
	printf("Pattern");
	scanf("%s",p);
	fail(p);
	if((i=kmp(t,p))==-1)
		printf("Pattern not found");
	else
		printf("Pattern found at index %d",i);
}		
Esempio n. 22
0
int main()
{
	scanf("%s\n%s",a,s);
	lena=strlen(a);lens=strlen(s);
	kmp();
	if(res)
	{
		printf("%d\n",res);
		for(int i=0;i<res;i++) printf("%d\n",ans[i]+1);
	}
	else printf("There must be something wrong.");
	return 0;
}
int main()
{
  //scanf( "%s%s" , &t , &p );
  //for( int i = 1 ; i <= 5 ; ++ i ) printf( "%c" , t[ i ] ); printf("\n");
  //printf( "%d %d\n" , strlen( t ) , strlen( p ) );
  while( scanf( "%d" , &n ) not_eq EOF )
    {
      //printf( "%d\n" , n );
      init();

      kmp();
    }
  return 0;
}
Esempio n. 24
0
int main()
{
    int n,pos,l1,l2,v,u;
    scanf("%d",&n);
    while(n--)
    {
        scanf("%s",str1);
        scanf("%s",str2);
        l1=strlen(str1);
        l2=strlen(str2);

        u=0;pos=kmp(str1,str2,l1,l2);
        if(pos!=-1)
            u=l2;
        else if(i==l1 && j>0 &&(str1[l1-1]==str2[j-1])) u=j;
        v=0;pos=kmp(str2,str1,l2,l1);
         if(pos!=-1) v=l1;
         else if(i==l2 && j>0 && (str2[l2-1]==str1[j-1])) v=j;

         printf("%d\n",l1+l2-(max(u,v)));
    }
    return 0;
}
Esempio n. 25
0
int main()
{
	int T;
	scanf("%d", &T);
	for(int zz=1; zz<=T; ++zz)
	{
		scanf("%s", s);
		scanf("%s", w);
		kmp_table();
		printf("Case %d: %d\n", zz, kmp());
	}

	return 0;
}
int main()
{
	int tc, i;

	scanf("%d", &tc);

	for(i = 0; i <tc; i++)
	{
		scanf("%s %s", str, substr);

		printf("Case %d: %d\n", i + 1, kmp(str, substr));
	}

	return 0;
}
Esempio n. 27
0
File: kmp.cpp Progetto: xinjli/CSI
int main(){

    string text = "abcabcdabaabdacdababcabb";
    string pat =  "abc";

    //string text = "abcabc";
    //string pat = "abc";

    vector<int> shifts = kmp(pat, text);
    for(auto shift: shifts){
        cout << text.substr(shift, pat.size()) << endl;
    }


}
Esempio n. 28
0
int
main(int argc, char *argv[])
{
    char str[] = "aaaaaaaaabbaaacbaaaaabc";
    char substr[] = "baaaaabc";

    int ret = kmp(str, substr);

    if (0 != ret)
        printf("%s\n", str + ret);
    else
        printf("not found\n");

    exit(EXIT_SUCCESS);
}
Esempio n. 29
0
int main(){
    int t;
    scanf("%d", &t);
    while(t--){
        scanf("%s", P);
        m = strlen(P);
        n = 2*m;
        strcpy(T, P);
        strcat(T, P);
        kmpPreprocess();
        kmp();
        printf("%d\n", occI[1]);
        if(t) printf("\n");
    }
    return 0;
}
Esempio n. 30
0
int numStringMatching(string filename,string toSearch)
{
	ifstream fich(filename.c_str());
	if (!fich)
	{ cout << "Erro a abrir ficheiro de leitura\n"; return 0; }

	string line1;
	int num=0;

	while (!fich.eof()) {
		getline(fich,line1);
		num+=kmp(line1,toSearch);
	}
	fich.close();
	return num;
}