| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 618 人关注过本帖
标题:字符串匹配
取消只看楼主 加入收藏
赤云
Rank: 2
等 级:论坛游民
帖 子:82
专家分:35
注 册:2014-12-29
结帖率:64.71%
收藏
已结贴  问题点数:10 回复次数:1 
字符串匹配
题目描述
给你一个字符串A和一个字符串B,请你计算字符串B的所有旋转形式在字符串A中的出现总次数。
说明:
如果将字符串B描述成B1B2...Bm的形式(m是B的长度),那么B1B2...Bm-1Bm,B2B3...BmB1,...,BmB1...Bm-2Bm-1就是字符串B的所有旋转形式。
输入
输入包含多组测试数据。每组输入为两行,第一行输入字符串A,第二行输入字符串B。A的长度不超过1000,B的长度不超过100,所有字符串仅包含小写字母。
输出
对于每组输入,输出字符串B的所有旋转形式在字符串A中的出现总次数。
样例输入
abab
ab
aaaa
a
aaaa
aa
样例输出
3
4
3
我的代码:
程序代码:
#include <stdio.h>
#include <string.h>
char a[1005];
int main(){
    char b[105],*p=b,t;
    int i,j,k,m,cnt,lena,lenb,flag;
    while(scanf("%s%s",a,b)!=EOF){
        cnt=0;  flag=1;
        lenb=strlen(b);
        //字符串b中的元素完全相同
        for(i=0;i<lenb-1;i++)
            if(b[i]!=b[i+1])
                flag=0;
        if(flag){
            m=k=0;
            while(m<lenb){
                while(1){
                    p=strstr(&a[k],b);
                    if(p){
                        k+=lenb;
                        cnt++;
                    }
                    else
                        break;
                }
                m++;
                k=m;
            }
            printf("%d\n",cnt);
            continue;
        }
        //字符串b中的元素不完全相同
        i=0;
        while(i<lenb){
            k=0;
            while(1){//此时状态的字符串b,在字符串a中有多少子串
                p=strstr(&a[k],b);
                if(p){
                    cnt++;
                    k=p-&a[0]+1;
                }
                else
                    break;
            }
            i++;
            //反转字符串b
            if(i<lenb){
                t=b[lenb-1];
                for(j=lenb-1;j>=0;j--)
                    b[j]=b[j-1];
                b[0]=t;
            }
        }
        printf("%d\n",cnt);
    }
    return 0;
}

为什么答案错误?

下面是给的提交反馈:
测试文件:/test.out   结果:答案错误
 =======原因======
 当参考答案输出:
 901
 -------时---------
 你的程序输出:
 45050
 =================
测试文件:/sample.out   结果:答案正确
搜索更多相关主题的帖子: 字符串 字母 
2015-08-20 16:41
赤云
Rank: 2
等 级:论坛游民
帖 子:82
专家分:35
注 册:2014-12-29
收藏
得分:0 
回复 2楼 rjsp
恩恩,谢谢啦
2015-08-22 09:13
快速回复:字符串匹配
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014304 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved