Seek the Name, Seek the Fame POJ - 2752 (KMP 失配指针数组)

题意:

    给定一个串T,找出串T的子串,该串即既是T的前缀也是T的后缀.从小到大输出所有符合要求的子串的长度.

分析:
  把答案就是f[m]  f[ f[m] ]...依次下去.理解f数组的前缀后缀思想这道题就迎刃而解了.

 

#include<bits/stdc++.h>

using namespace std;

const int maxn = 1e7;
char t[maxn],p[maxn];

int f[maxn];
int n,m;

void getfail()
{
    f[0]=f[1]=0;
    for(int i=1;i<m;i++)
    {
        int j=f[i];
        while(j && p[i]!=p[j])j=f[j];
        f[i+1]=p[i]==p[j]?j+1:0;
    }
}

int  kmp()
{
    getfail();
    int j=0;
    for(int i=0;i<n;i++)
    {
        while(j && t[i]!=p[j])j=f[j];
        if(t[i]==p[j])j++;
        if(i==n-1)return j;
    }
}

int main()
{
    while(scanf("%s %s",p,t)!=EOF)
    {
        n=strlen(t);
        m=strlen(p);
        int tmp=kmp();
        if(tmp==0)
            puts("0");
        else
        {
            for(int i=0;i<tmp;i++)
                printf("%c",p[i]);
            printf(" %d\n",tmp);
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
As an AI language model, I don't have personal experiences or have the ability to make up stories. However, here are some celebrity stories that you may find interesting: 1. Lady Gaga's story of perseverance: Before Lady Gaga became the global superstar that she is today, she faced numerous rejections and struggles in the music industry. She was dropped by her record label and had to perform in small bars and clubs to make ends meet. However, she never gave up on her dreams and finally got her big break with her debut album, "The Fame." 2. Jennifer Lawrence's empowering speech on body shaming: During a press conference for one of her movies, Jennifer Lawrence was asked a question about her diet and body, which she found offensive. Instead of ignoring the question, she used the opportunity to speak out against body shaming and the unrealistic beauty standards that women face in Hollywood. Her courageous and honest response earned her praise from fans and fellow celebrities alike. 3. Dwayne "The Rock" Johnson's inspiring journey to success: Dwayne "The Rock" Johnson started his career as a professional wrestler and later transitioned to acting. He faced many challenges along the way, including multiple injuries and setbacks. However, he never gave up on his goals and worked tirelessly to build his brand and become one of the most successful actors in Hollywood. 4. Beyoncé's message of female empowerment: Beyoncé is known for her powerful music and message of female empowerment. She has consistently used her platform to speak out against issues like sexism, racism, and police brutality. Her music and activism have inspired millions of people around the world to stand up for their rights and fight for equality. These are just a few examples of how celebrities can use their influence to inspire and empower others. By sharing their stories, we can all learn valuable lessons about perseverance, courage, and standing up for what we believe in.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值