字符串预处理

用nextz[x][y]表示下标为x的字符后面第一次出现y的位置

s为字符串,存储的字符从下标1开始

void init()
{
    for(int i='a';i<='z';i++)
    {
        for(int j=n;j>=1;j--)
        {
            nextz[j-1][i-'a']=nextz[j][i-'a'];
            if(s[j]==char(i))
                nextz[j-1][i-'a']=j;
        }
    }
}

 

posted @ 2018-11-13 10:05  paranoid。  阅读(226)  评论(0编辑  收藏  举报