zoukankan      html  css  js  c++  java
  • 杭电ACM减花布条

    这是原题的地址 http://acm.hdu.edu.cn/showproblem.php?pid=2087

    Problem Description

    一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?

    Input

    输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。如果遇见#字符,则不再进行工作。

    Output

    输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就老老实实输出0,每个结果之间应换行。

    Sample Input

    abcde a3 aaaaaa aa #

    Sample Output

    0 3

    题目是中文,很好懂,也是一道水题,水水更利索!

    #include<stdio.h>
    #include<string.h>
    int main(){
        char a[1001],b[1001];
        int n,len;
        while(scanf("%s",a)==1 && a[0]!='#')
        {
            scanf("%s",b);
            len = strlen(b);
            n=0;
            char *p = a;                  //指针*p指向字符数组的首个地址
            while((p=strstr(p,b))!=0)      //如果找到了b字符串,就返回在a字符串中第一次出现b字符的地址
            {
                n++;
                p=p+len;
            }
            printf("%d
    ",n);
        }
        return 0;
    }
    /*又是一道水题
    /*首先需要考虑输出多组字符窜的问题,用while(scanf("%s",a)==1 )解决
    /*其次就是要知道使用用strstra函数,利用它找到第一个长字符窜中包含的第二个字符串的个个数
    /*有关函数strstr
        原型:extern char *strstr(char *haystack, char *needle);
      用法:#include <string.h>
      功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。
      说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。
    */
  • 相关阅读:
    cocos2dx-lua UI编辑器的设计思路
    软件中Undo(撤回)和Redo(重做)的实现
    Cocos2d-x上适合做工具的UI库:ImGui
    静态成员
    命名空间
    类对象的初始化
    函数的重载、重写与隐藏
    类的继承关系与访问限定符
    多继承
    友元函数与友元类
  • 原文地址:https://www.cnblogs.com/LZYY/p/3383416.html
Copyright © 2011-2022 走看看