首页 > 其他分享 >OJ刷题之旅

OJ刷题之旅

时间:2023-05-08 23:32:46浏览次数:33  
标签:输出 OJ int pattern 布条 cloth 小饰条 刷题

题目描述

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

输入

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

输出

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

样例

输入 abcde a3 aaaaaa aa

输出  0 3

来源/分类

字符串

代码

以下是C语言程序的代码实现:

#include <stdio.h>
#include <string.h>

int main() {
    char cloth[1001], pattern[1001];
    while (scanf("%s%s", cloth, pattern) == 2) {
        if (cloth[0] == '#' && pattern[0] == '#') {
            break;
        }
        int cloth_len = strlen(cloth), pattern_len = strlen(pattern);
        int count = 0;
        while (strstr(cloth, pattern) != NULL) {
            count++;
            char *pos = strstr(cloth, pattern);
            for (int i = 0; i < pattern_len; i++) {
                pos[i] = ' ';
            }
        }
        printf("%d\n", count);
    }
    return 0;
}

思路解析

首先,我们需要读入两个字符串,分别表示花布条和小饰条。然后,我们需要在花布条中查找小饰条,计算出能从花布条中剪出的最多小饰条个数。

具体实现时,我们可以使用字符串函数 strstr() 在花布条中查找小饰条。如果找到了小饰条,我们就将其替换成空格,以便下一次查找。每找到一次小饰条,我们就将计数器加一。最后,输出计数器的值即可。

需要注意的是,我们需要在读入两个字符串后判断是否遇到了 # 字符,如果是,则退出循环。同时,我们需要在每个结果之间输出换行符。

标签:输出,OJ,int,pattern,布条,cloth,小饰条,刷题
From: https://blog.51cto.com/u_16060410/6256385

相关文章

  • 第七届河南省赛 zzuoj 10403: D.山区修路 (DP转换&&技巧)
    10403:D.山区修路TimeLimit: 2Sec  MemoryLimit: 128MBSubmit: 68  Solved: 22[Submit][Status][WebBoard]Description某山区的孩子们上学必须经过一条凹凸不平的土路,每当下雨天,孩子们非常艰难。现在村里走出来的Dr.Kong决定募捐资金重新修建着条路......
  • LightOJ - 1058 Parallelogram Counting (数学几何&技巧)给n个点求组成平行四边形个数
    LightOJ-1058ParallelogramCountingTimeLimit: 2000MSMemoryLimit: 32768KB64bitIOFormat: %lld&%lluSubmit StatusDescriptionThereare n distinctpointsintheplane,givenbytheirintegercoordinates.Findthenumberofparallelogramswhosever......
  • 面向对象(刷题)
                ......
  • Mojo 语言官方网站
    Mojo语言官方网站:  https://docs.modular.com/语言文档:  https://docs.modular.com/mojo/get-started.html?continueFlag=79ffd5fcb61f5a609d5f0e732d0f2e83 ......
  • POJ 动态规划题目列表
    声明:1.这份列表当然不是我原创的,从文库里下载了一份,放到这里便于自己浏览和查找题目。※最近更新:Poj斜率优化题目1180,2018,3709列表一:经典题目题号:容易:1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1191,1208, 1276, 1322, 1414, 1456, 1458......
  • poj018(2)
    再贴一版poj1018,其实与之前的那一版差不多,只是去掉了注释,这样可能看起来会舒服一点packagecom.njupt.acm;importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.util.Arrays;importjava.util.Scanner;publicclassTestPOJ1018{pu......
  • poj1018(1)
    其实这道题我也没有完全的弄明白,糊里糊涂就ac了 大致题意:某公司要建立一套通信系统,该通信系统需要n种设备,而每种设备分别可以有m1、m2、m3、...、mn个厂家提供生产,而每个厂家生产的同种设备都会存在两个方面的差别:带宽bandwidths和价格prices。现在每种设备都各需要1个,考虑......
  • poj1013
    大致题意:有一打(12枚)硬币,其中有且仅有1枚假币,11枚真币用A~L作为各个硬币的代号假币可能比真币略轻,也可能略重现在利用天枰,根据Input输入的3次称量,找出假币,并输出假币是轻还是重。 解题思路:模拟法要考虑的情况较繁琐,可利用简单的逻辑推理进行解题。  注意Input一行代......
  • project中资源自动调配顺序
    1、优先级为1000的任务优先使用资源。2、根据任务的限制类别决定。3、关键路径上的任务比非关键路径上的任务优先使用资源。4、优先级高的任务比优先级低的任务优先使用资源。5、比较长的路径上的任务优先使用资源。6、开始时间早的任务优先使用资源。7、工期比较长的任务优先使用......
  • POJ2739 Sum of Consecutive Prime Numbers&&Acwing4938 连续质数之和
    方法:单调队列为什么是单调队列?因为这里让我们求连续的质数和,我们可以利用欧拉筛来维护质数,再利用单调队列来维护连续的质数。代码(POJ不支持C++11差评):#include<cstdlib>#include<cstring>#include<cstdio>#include<cctype>namespaceFastIo{ #definegcgetchar() #d......