day19—编程题

news/2024/10/29 1:30:59/

文章目录

  • 1.第一题
    • 1.1题目
    • 1.2思路
    • 1.3解题
  • 2.第二题
    • 2.1题目
    • 2.2思路
    • 2.3解题

1.第一题

1.1题目

描述:
某商店规定:三个空汽水瓶可以换一瓶汽水,允许向老板借空汽水瓶(但是必须要归还)。
小张手上有n个空汽水瓶,她想知道自己最多可以喝到多少瓶汽水。
注意:本题存在多组输入。输入的 0 表示输入结束,并不用输出结果。
输入描述:
输入文件最多包含 10 组测试数据,每个数据占一行,仅包含一个正整数 n( 1<=n<=100 ),表示小张手上的空汽水瓶数。n=0 表示输入结束,你的程序不应当处理这一行。
输出描述:
对于每组测试数据,输出一行,表示最多可以喝的汽水瓶数。如果一瓶也喝不到,输出0。

1.2思路

  1. 喝到的汽水数=空瓶子的数/3
  2. 空瓶子的数=空瓶子的数/3+空瓶子的数%3
  3. 如果剩下两个空瓶子可以向老板借一瓶汽水,记得把喝到的汽水数加一

1.3解题

import java.util.*;
public class Main {public static int getSum(int num){int sum = 0;while(num > 1){//喝到的汽水的数量sum += num / 3;//空瓶子的数量num = num /3 + num % 3;//如果剩下两个空瓶子可以向老板借一瓶汽水if(num == 2){sum++;break;}}return sum;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);int num;//这里是因为最后一个输入0表示结束,不用输出结果while((num = sc.nextInt()) != 0){System.out.println(getSum(num));}}
}

2.第二题

2.1题目

描述:
查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。
注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开
输入描述:
输入两个字符串
输出描述:
返回重复出现的字符

2.2思路

  1. 将字符串转化为字符串数组
  2. 定义一个二维数组统计当前最长字符串的长度
  3. 如果第i个字符和第j个字符相等,就进行累加
  4. 如果会面出现了更长的子串记得更新最长子串的长度以及最长子串起始的位置
  5. 记得根据输入的两个字符串的长度判断输出结果

2.3解题

import java.util.*;
import java.io.*;
public class Main {public static String getMaxStr(String str1, String str2) {char[] ch1 = str1.toCharArray();char[] ch2 = str2.toCharArray();//多增加一行一列,作为辅助状态int[][] arr = new int[ch1.length + 1][ch2.length + 1];int sumLen = 0;//最长公共子串的长度int start = 0;//最长公共子串的起始位置//状态:以str1的第i个字符结尾和以str2的第j个字符结尾的最长公共子串的长度for (int i = 1; i <= ch1.length; i++) {for (int j = 1; j <= ch2.length; j++) {//如果第i个字符和第j个字符相等,则进行累加if (ch1[i - 1] == ch2[j - 1]) {arr[i][j] = arr[i - 1][j - 1] + 1;if (sumLen < arr[i][j]) {sumLen = arr[i][j];start = i - sumLen;}}}}return str1.substring(start, start + sumLen);}public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str1 = sc.nextLine();String str2 = sc.nextLine();if (str1.length() < str2.length()) {System.out.println(getMaxStr(str1, str2));} else {System.out.println(getMaxStr(str2, str1));}}
}

http://www.ppmy.cn/news/37941.html

相关文章

SpringBoot实践项目

开发工具 插件&#xff1a; Maven Helper Free Mybatis PluginAPI工具 PostMan数据库 mysql可视化工具 NavicatJDK version 1.8IDE IDEA 2023.1技术栈 SpringBoot 2.2.1.RELEASE Mybatis 3.4.6 Maven 3.6.0 Log4j2 2.12.1开发步骤 新建SpringBoot项目 直接使用IDEA 选…

原来count(*)是接口性能差的真凶

以下文章来源于苏三说技术 &#xff0c;作者苏三呀 一.前言 最近我在公司优化过几个慢查询接口的性能&#xff0c;总结了一些心得体会拿出来跟大家一起分享一下&#xff0c;希望对你会有所帮助。 我们使用的数据库是Mysql8&#xff0c;使用的存储引擎是Innodb。这次优化除了优…

蓝桥杯带刷题

A::::::::::::::::::小数第n位 题目描述 我们知道&#xff0c;整数做除法时&#xff0c;有时得到有限小数&#xff0c;有时得到无限循环小数。 如果我们把有限小数的末尾加上无限多个 0&#xff0c;它们就有了统一的形式。 本题的任务是&#xff1a;在上面的约定下&#xff…

CISAW-CISDR灾难备份与恢复专业级认证

证书样板&#xff1a; 认证机构 中国网络安全审查技术与认证中心&#xff08;英文缩写为&#xff1a;CCRC,原为中国信息安全认证中心&#xff09;于 2006 年由中央机构编制委员会办公室批准成立&#xff0c;为国家市场监督管理总局直属事业单位。依据《网络安全法》 《网络安…

【Redis】持久化

持久化方式 RDB(Redis Database) 持久化方式&#xff1a;将 Redis 在内存中的数据快照以二进制形式保存到磁盘上&#xff0c;可通过配置不同的保存策略来实现定时备份或者手动触发备份。RDB 持久化方式具有非常高的性能和恢复速度。 AOF(Append Only File) 持久化方式&#xf…

Linux 常见命令

文章目录&#xff1a; 1.ls 11.mv 2.cd 12.netstat 3.pwd 4.touch 5.echo 6.cat 7.vim 8.mkdir 9.rm 10.cp 1.ls 查看当前目录下有哪些目录或者文件 此时这里表示根目录下的root目录下有哪些目录或者文件 2.cd 表示切换到那个目录 几种特…

100天精通Python丨黑科技篇 —— 06、Python 修图(滤镜、灰度、裁剪、视觉处理、图像分割、特征提取)

文章目录一、PIL 常规修图操作1. 读取图片2. 图片缩放3. 图片旋转4. 图片裁剪5. 图片滤镜二、OpenCV 图像处理、视频处理、对象识别三、scikit-image 视觉算法&#xff0c;包括滤波、形态学操作、图像分割、特征提取四、TensorFlow 图像分类、目标检测、图像生成有些小伙伴可能…

Linux系统一键安装最新内核并开启 BBR 脚本

本脚本适用环境 系统支持&#xff1a;CentOS 6&#xff0c;Debian 8&#xff0c;Ubuntu 16 虚拟技术&#xff1a;OpenVZ 以外的&#xff0c;比如 KVM、Xen、VMware 内存要求&#xff1a;≥128M 更新日期&#xff1a;2022 年 5 月 11 日 关于本脚本 1、本脚本已在 蓝易云 上…