zoukankan      html  css  js  c++  java
  • SDUT OJ 2463 学校password你必须学会科学计划

    #include<iostream>
    #include<string.h>
    #include<stdio.h>
    #define N 10010
    #define M 1000100
    using namespace std;
    int next[N];
    char s[M],t[N];
    void getnext(char s[])
    {
        int i=0,j=-1,len;
    	next[0]=-1;
    	len=strlen(s);
    	while(i<len)
    	{
    		if(j==-1 || s[i]==s[j])
    		{
    			i++;
    			j++;
    			if(s[i]!=s[j])  
    				next[i]=j;
    			else
                    next[i]=next[j];
    		}
    		else
    			j=next[j];
    	}
    }
    int KMP(char s[],char t[])
    {
    	int i=0,j=0,len,len1;
    	len=strlen(s);
    	len1=strlen(t);
    	while(i<len && j<len1)
    	{
    		if(j==-1 || s[i]==t[j])
    		{	i++;
    		    j++;
    		}
    		else
    			j=next[j];
    	}
    	if(j>=len1)  return i-len1+1;
    	else   return 0;
    }	    
    int main()
    {
    	int n;
    	cin>>n;
    	while(n--)
    	{
    		cin>>s>>t;
    	    getnext(t);
    		int m=KMP(s,t);
    		if(m)
    			cout<<m<<endl;
    		else
    			cout<<"::>_<::"<<endl;
    	}
    	return 0;
    }

    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    java--静态变量
    java--IO
    java--集合
    java--线程
    java——图形用户界面编程-——布局
    java--图形用户界面编程
    String类
    JAVA-继承和接口
    JAVA——构造方法
    JAVA——接口
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4677446.html
Copyright © 2011-2022 走看看