【Java版oj】day33剪花布条、客似云来
目录
一、剪花布条
(1)原题再现
(2)问题分析
(3)完整代码
二、客似云来
(1)原题再现
(2)问题分析
(3)完整代码
一、剪花布条
(1)原题再现
剪花布条__牛客网
一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?输入描述:
输入包含多组数据。
每组数据包含两个字符串s,t,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。
输出描述:
对应每组输入,输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就输出0,每个结果占一行。
示例1
输入
abcde a3
aaaaaa aa
输出
0
3
(2)问题分析
这道题可以用快慢指针,如果快慢指针指向的字符串中包含目标字符串,则将计数+1,然后改变快慢指针的位置,前面寻找过的部分不再寻找。如果不包含目标字符串,就将慢指针往后移动。
(3)完整代码
import java.util.Scanner;/** 剪花布条*/ public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNext()) {String str1 = sc.next(); //花布条String str2 = sc.next(); //小饰条int fast = 0, slow = 0; //快慢指针int count = 0;for (int i = 0; i < str1.length(); i++) {if (str1.substring(slow, fast + 1).contains(str2)) {count++;slow = fast +1; //开始新的寻找,往后继续寻找,前面找过的部分不要fast++;} else {fast++;//往后继续寻找}}System.out.println(count);}} }
二、客似云来
(1)原题再现
客似云来__牛客网
NowCoder开了一家早餐店,这家店的客人都有个奇怪的癖好:他们只要来这家店吃过一次早餐,就会每天都过来;并且,所有人在这家店吃了两天早餐后,接下来每天都会带一位新朋友一起来品尝。
于是,这家店的客人从最初一个人发展成浩浩荡荡成百上千人:1、1、2、3、5……
现在,NowCoder想请你帮忙统计一下,某一段时间范围那他总共卖出多少份早餐(假设每位客人只吃一份早餐)。输入描述:
测试数据包括多组。
每组数据包含两个整数from和to(1≤from≤to≤80),分别代表开店的第from天和第to天。
输出描述:
对应每一组输入,输出从from到to这些天里(包含from和to两天),需要做多少份早餐。
(2)问题分析
这道题就是斐波那契求和,有两个注意点。
第一点不能超过数据范围,所以我们使用long类型。
第二点不能超过运行时间,运行时间很小,肯定不能用递归。所以用一个数组直接保存所有需要的斐波那契数。因为是循环输入,如果我们每次在循环里面都建立一个数组,最后总时间就会发生超时错误。所有我们在输入循环外面建一个数组即可。
(3)完整代码
import java.util.*; /* *斐波那契凤尾 */ public class Main {public static long[] fibs = new long[100001];public static void main(String[] args) {Scanner sc = new Scanner(System.in);//生成fibfibs[0] = 1;fibs[1] = 1;int flag = 0;for (int i = 2; i < fibs.length; i++) {long ret = fibs[i - 1] + fibs[i - 2];fibs[i] = ret % 1000000;if (flag == 0 && ret >= 1000000) flag = i;}while (sc.hasNextInt()) {int n = sc.nextInt();if (n < flag) System.out.println(fibs[n]);else System.out.printf("%06d\n", fibs[n]);}} }
【Java版oj】day33剪花布条、客似云来相关推荐
- 剪花布条, 客似云来
import java.util.*; public class Main{public static void main(String[] args){Scanner sc = new Scanne ...
- Day 33 剪花布条+客似云来
目录 1.剪花布条 2.客似云来 1.剪花布条 链接:剪花布条__牛客网 来源:牛客网 [编程题]剪花布条 热度指数:1327 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M, ...
- 牛客刷题篇:客似云来 和 剪花布条(Java)
目录 题目一:客似云来 输入描述 输出描述 解题思路 代码 题目二:剪花布条 输入描述 输出描述 解题思路 代码 题目一:客似云来 链接:客似云来 NowCoder开了一家早餐店,这家店的客人都有个奇 ...
- 笔试强训day33(客似云来,剪花布条)
目录 第一题-剪花布条 第二题-客似云来 第一题-剪花布条 思路: 遍历s,利用find函数在s中寻找t,找到了,计数++,同时将找到的字符串t在s中删除,直到遇到npos结束遍历 // write ...
- 客似云来, 剪花布条
*~题目:客似云来 题目描述: NowCoder开了一家早餐店,这家店的客人都有个奇怪的癖好:他们只要来这家店吃过一次早餐,就会每天都过来:并且,所有人在这家店吃了两天早餐后,接下来每天都会带一位新朋 ...
- 刷题_33:剪花布条 and 客似云来
一.剪花布条 题目链接: 剪花布条 题目描述: 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? 输入描述 ...
- 剪花布条(KMP入门)
剪花布条 HDU - 2087 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Input输入中含有一 ...
- HDU2087 剪花布条【KMP】
剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissi ...
- 2016 UESTC Training for Search Algorithm String I - 谭爷剪花布条 KMP
I - 谭爷剪花布条 Time Limit: 3000/100MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit ...
最新文章
- Codeforces Round #700 (Div. 2) A ~ E ,6题全,超高质量良心题解【每日亿题】2021/2/8
- 动态路由协议RIP的基本原理与配置
- vs里面mfc是什么_最近!一大批人正在前往文安,究竟发生了什么?
- 隐马尔可夫(HMM)/感知机/条件随机场(CRF)----词性标注
- elemenetui 布局_2020 零基础到快速开发 Vue全家桶开发电商管理系统(Element-UI)主页布局开发-Go语言中文社区...
- 5G 时代,将边缘计算进行到底!
- 软考(软件设计师)应该如何备考?
- 计算机上自带的打字游戏,完美运行金山打字通2016(包括自带的小游戏)
- 相关系数excel_excel函数利用CORREL函数FORECAST函数根据现有数据预测未来数据
- ThoughtWorks面试经历——武汉java开发
- Android 第三方轮播图控件ConvenientBanner:通用的广告栏控件
- jar包运行报错jar中没有主清单属性、springGateway访问接口报错302,跳转login接口
- 七牛云存储使用经历到底怎么样
- 存储卡被格式化了咋恢复文件?
- 程序猿推送利器:使用Python+Server酱打造微信通知推送利器
- 如何打造抖音爆款内容,从而快速热门涨粉丨国仁网络
- mysql中in的参数有限制_数据库 in 可以包含的参数个数
- 拼多多免单券怎么领取 拼多多免单券是真的吗
- [nonebot2]QQ机器人签到插件
- 孤单是对你最好的惩罚