九度oj-1094-String Matching

原创 2015年11月17日 18:25:09

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:1263

解决:689

题目描述:

    Finding all occurrences of a pattern in a text is a problem that arises frequently in text-editing programs. 
    Typically,the text is a document being edited,and the pattern searched for is a particular word supplied by the user.  
    We assume that the text is an array T[1..n] of length n and that the pattern is an array P[1..m] of length m<=n.We further assume that the elements of P and  T are all alphabets(∑={a,b...,z}).The character arrays P and T are often called strings of characters.  
    We say that pattern P occurs with shift s in the text T if 0<=s<=n and T[s+1..s+m] = P[1..m](that is if T[s+j]=P[j],for 1<=j<=m).  
    If P occurs with shift s in T,then we call s a valid shift;otherwise,we calls a invalid shift. 
    Your task is to calculate the number of vald shifts for the given text T and p attern P.

输入:

   For each case, there are two strings T and P on a line,separated by a single space.You may assume both the length of T and P will not exceed 10^6. 

输出:

    You should output a number on a separate line,which indicates the number of valid shifts for the given text T and pattern P.

样例输入:
abababab abab
样例输出:
3
来源:
2006年上海交通大学计算机研究生机试真题

#include<stdio.h>
#include<string.h>
char a[1000005],b[1000005];
int main()
{
    int na,nb,i,j;
    while(scanf("%s%s",a,b)!=EOF)
    {
        int count=0;
        na=strlen(a);
        nb=strlen(b);
        for(i=0;i<=na-nb;i++)
        {
            for(j=0;j<nb;j++)
                if(a[i+j]!=b[j])
                break;
            if(j==nb)
                count++;
        }
        printf("%d\n",count);
    }
    return 0;
}


相关文章推荐

<九度 OJ>题目1094:String Matching

We say that pattern P occurs with shift s in the text T if 0

【南阳oj 】练习题 5 Binary String Matching

点击打开链接 描述 Given two strings A and B, whose alphabet consist only ‘0’ and ‘1’. Your tas...

九度OJ-104 使用标准库之string

string的常用操作与函数 1.可以用保存在字符数组中的字符串直接进行赋值 #include #include using namespace std; int main() { ...
  • wxwd1
  • wxwd1
  • 2015年03月12日 10:48
  • 644

九度OJ八皇后问题

  • 2013年04月09日 23:47
  • 3KB
  • 下载

刷清橙OJ--A1094.牛顿迭代法求方程的根

问题: A1094. 牛顿迭代法求方程的根 时间限制:1.0s   内存限制:256.0MB   总提交次数:1330   AC次数:514   平均分:52.12 【问题描述】   给定三...

Light OJ 1094 - Farthest Nodes in a Tree

两次bfs就可以解决树的最大直径了,

南邮 OJ 1094 蛇形填数

蛇形填数 时间限制(普通/Java) : 5000 MS/ 3000 MS          运行内存限制 : 65536 KByte 总提交 : 1058            测试通过 :...

OJ 1094 Sorting It All Out练习小结

注意三种情况的 优先级:不确定
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:九度oj-1094-String Matching
举报原因:
原因补充:

(最多只允许输入30个字)