zoukankan      html  css  js  c++  java
  • 字符串比对(10分)

    题目内容:

    题目说起来很简单,你会读到两个字符串,每个字符串占据一行,每个字符串的长度均小于10000字符,而且第一个字符串的长度小于第二个字符串的。你的程序要找出第一个字符串在第二个字符串中出现的位置,输出这些位置,如果找不到,则输出-1。
    注意,第一个字符的位置是0。第一个字符串在第二个字符串中的位置可能不止一处。字符串中可能含有空格。两个字符串的长度一定大于0。

    输入格式:

    两个字符串,一行一个。

    输出格式:

    第一个字符串在第二个字符串中出现的位置,按照从小到到的顺序排列,每个数字后面有一个空格。
    如果在第二个字符串中找不到第一个字符串,则输出-1。

    输入样例:

    abba
    ababbba abbabbabbabbaacc

    输出样例:

    8 11 14 17

    #include <stdio.h>
    #include <string.h>	
    
    int main(){
        char A[10000],B[10010];
        gets(A);
        gets(B);
        int	sign=0,al=strlen(A),bl=strlen(B);
        for(int i=0;i<bl;i++){
            for(int k=0;k<al;k++){
                if(A[k]!=B[i+k])
                    break;	
                if(k==al-1){		//k=0~al-1 时,程序都没有跳出循环 	
                    sign=1;			//说明:找到了第一个字符串
                    printf("%d ",i);
                }
            }
        }
        if(!sign)	
            printf("-1");
        return 0;
    }
  • 相关阅读:
    SQL SERVER DBCC命令参考
    Sqlserver 死锁问题
    收集面试题目DB
    收集面试题目Net
    [转]Virtual PC 2007虚拟机上安装Ubuntu 8.10桌面版
    Tcl/tk基础-2
    【转】内存详解
    [转]C# P2P与NAT技术之二
    泛型跟KeyNotFoundException
    用InstallAware 9制作BDE安装程序
  • 原文地址:https://www.cnblogs.com/NTyee/p/12897667.html
Copyright © 2011-2022 走看看