【java】笔试强训Day3【在字符串中找出连续最长的数字串与数组中出现次数超过一半的数字】
目录
⛳选择题
1.以下代码运行输出的是
2.以下程序的输出结果为
3.下面关于构造方法的说法不正确的是 ( )
4.在异常处理中,以下描述不正确的有( )
5.下列描述中,错误的是( )
6.下列哪种说法是正确的?
7.有以下代码片段: 请问输出的结果是( )
8.程序读入用户输入的一个值,要求创建一个自定义的异常,如果输入值大于 10 ,使用 throw 语句显式地引发异常,异常输出信息为 ”something’swrong!” , 语句为( )
9.以下关于集合类 ArrayList 、 LinkedList 、 HashMap 描述错误的是( )
10.Java程序中的类名必须与存放该类的文件名相同
🔥编程题
1.在字符串中找出连续最长的数字串
2.数组中出现次数超过一半的数字
⛳选择题
1.以下代码运行输出的是
public class Person{private String name = "Person";int age=0;}
public class Child extends Person{public String grade;public static void main(String[] args){Person p = new Child();System.out.println(p.name);}}
A 输出:Person B 没有输出 C 编译出错 D 运行出错
🙈大家觉得答案是什么呢
🙉答案是 C 啦~
🔎思路分析:
Person 中的 name 是 private 修饰符修饰的,只能在类内进行访问
通过 p 调用 name
2.以下程序的输出结果为
class Base{public Base(String s){System.out.print("B");}
}
public class Derived extends Base{public Derived (String s) {System.out.print("D");}public static void main(String[] args){new Derived("C");}
}
A、BD B、 DB C、C D、编译错误
🙈大家觉得答案是什么呢
🙉答案是 D 啦~
🔎思路分析:本题考查的是 继承
由题可得:父类带有一个参数的构造方法,就不会提供不带参数的构造方法
此时,子类要帮助父类构造方法,而父类是一个带有一个参数的构造方法,因此此时要用 关键字super 调用构造方法
这时候编译就出错了
3.下面关于构造方法的说法不正确的是 ( )
A 构造方法也属于类的方法,可以创建对象的时候给成员变量赋值
B 构造方法不可以重载
C 构造方法没有返回值
D 构造方法一定要和类名相同
🙈大家觉得答案是什么呢
🙉答案是 B 啦~
🔎思路分析:构造方法也属于类方法,有无参构造也有有参构造,并且在一个类中两种构造可以都存在,可以创建对象的时候给成员变量赋值 ,所以构造方法可以重载。构造方法一定要和类名相同,并给构造方法没有返回值。
4.在异常处理中,以下描述不正确的有( )
A try块不可以省略
B 可以使用多重catch块
C finally块可以省略
D catch块和finally块可以同时省略
🙈大家觉得答案是什么呢
🙉答案是 D 啦~
🔎思路分析:在异常处理中 try 与 catch 块是不可以省略的,并给 catch 块可以写很多个;而 finally 块可以省略
5.下列描述中,错误的是( )
A SQL语言又称为结构化查询语言
B java中”static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问
C 面向对象开发中,引用传递意味着传递的并不是实际的对象,而是对象的引用,因此,外部对引用对象所做的改变不会反映到所引用的对象上
D java是强类型语言,javascript是弱类型语言 E 面向对象的三大特性包括:封装,继承,多态
🙈大家觉得答案是什么呢
🙉答案是 C 啦~
6.下列哪种说法是正确的?
A 实例方法可直接调用超类的实例方法
B 实例方法可直接调用超类的类方法
C 实例方法可直接调用本类的类方法
D 实例方法可直接调用其他类的实例方法
🙈大家觉得答案是什么呢
🙉答案是 C 啦~
🔎思路分析:
A 中如果要调用超类的构造方法应该使用:super 调用
B 中超类的类党法即静态方法:通过 类名 调用
D 中其他类的实例方法需要通过:其他类调用
7.有以下代码片段: 请问输出的结果是( )
String str1="hello";
String str2="he"+ new String("llo");
System.out.println(str1==str2);
A true B 都不对 C null D false
🙈大家觉得答案是什么呢
🙉答案是 D 啦~
🔎思路分析:str1 存放的是常量池的地址,str2 中拼接成新的对象,对象在堆上,因此 str2 存的是堆上的地址,则输出 false
8.程序读入用户输入的一个值,要求创建一个自定义的异常,如果输入值大于 10 ,使用 throw 语句显式地引发异常,异常输出信息为 ”something’swrong!” , 语句为( )
A if(i>10)throw new Exception("something’swrong!");
B if(i>10)throw Exception e("something’swrong!");
C if(i>10) throw new Exception e("something’swrong!");
D if(i>10)throw Exception( "something’swrong!");
🙈大家觉得答案是什么呢
🙉答案是 A 啦~
🔎思路分析:这是在抛异常,而异常是一个类,则没有 new 是错误的,并且是类名小括号,不可以有其他的
thorw的使用格式是:throw new Exception("语句")
9.以下关于集合类 ArrayList 、 LinkedList 、 HashMap 描述错误的是( )
A HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值
B ArrayList和LinkedList均实现了List接口
C 添加和删除元素时,ArrayList的表现更佳
D ArrayList的访问速度比LinkedList快
🙈大家觉得答案是什么呢
🙉答案是 C 啦~
🔎思路分析:HashMap实现了Map接口,它允许任何类型的键和值对象,并允许将null用作键或值。ArrayList和LinkedList均实现了List接口。ArrayList的访问速度比LinkedList快,LinkedList需要遍历访问。
添加和删除元素时,ArrayList的表现最差,因为1️⃣添加元素的时候,需要把这个元素插入到数组中,那么之后的元素都需要向后移动2️⃣删除这个元素的时候,需要把之后的元素都向前移动; 因此 ArrayList 不适合用来添加和删除元素,而是用来查找,并且是通过下表进行查找
10.Java程序中的类名必须与存放该类的文件名相同
A 对 B 错
🙈大家觉得答案是什么呢
🙉答案是 B 啦~
🔥编程题
1.在字符串中找出连续最长的数字串
牛客网链接: 字符串中找出连续最长的数字串
描述:读入一个字符串str,输出字符串str中的连续最长的数字串
输入描述:个测试输入包含1个测试用例,一个字符串str,长度不超过255。
输出描述:在一行内输出str中里连续最长的数字串。
示例1
输入:abcd12345ed125ss123456789
输出:123456789
🔎思路分析:首先我们需要定义一个 String cur 和 String ret , cur 里存放的是数字串 , ret 里存放的是最终的数字串
1️⃣定义一个 i , 用来遍历字符串 , 首先我们需要把字符串中的字符拿到 , 用来判断是不是数字
2️⃣如果是 数字 , 则放入到 cur 中
3️⃣如果下一个不是字符串 , 则让 cur 中的数组串长度与 ret 中的数字串长度进行比较 , 如果是 cur 中的数组串长度大 , 则使 ret = cur ; 如果 ret 中的数字串长度大 , 则令 cur = "";意味着把 cur 中的数字串清空


4️⃣❗❗❗最重要的是 , 假设这个字符串最终是由 数字 结尾 , 那么就会出现问题 :

因此这个时候就需要我们加一个条件 : 假如 i 达到了字符串的长度之后 , 判断 cur 中的数组串长度与 ret 中的数字串长度进行比较 , 如果是 cur 中的数组串长度大 , 更新 ret 中的数字串
import java.util.Scanner;public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String str = scanner.nextLine();String cur = "";//符合的数字串放入String ret = "";//用来存放最终的数字串结果int i = 0;for (i = 0; i < str.length(); i++) {char ch = str.charAt(i);//查找字符串中每个字符if (ch >= '0' && ch <= '9') {cur = cur + ch + "";//字符串与字符拼接+““} else {if (cur.length() > ret.length()) {ret = cur;} else {cur = "";}}}if (i == str.length() && cur.length() > ret.length()) {ret = cur;}System.out.println(ret);}
2.数组中出现次数超过一半的数字
牛客网链接 : 数组中出现次数超过一半的数字
描述 : 给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。
数据范围:n≤50000,数组中元素的值 0≤val≤10000 要求:空间复杂度:O(1),时间复杂度 O(n)
输入描述:保证数组输入非空,且保证有解
示例1
输入:[1,2,3,2,2,2,5,4,2]
返回值:2
示例2
输入:[3,3,3,3,2,2,2]
返回值:3
🔎思路分析 : 这里给两种方法
第一种 : 排序
1️⃣找到中间数字
2️⃣再次遍历数组,看一下这个数出现多少次
这个时候需要引出两个数,众数和非众数
如果两个数不相等,就消去这两个数,最坏的情况下,每次消去一个众数和非众数,那么如果存在众数,最后留下的数肯定是众数
import java.util.Arrays;public static int MoreThanHalfNum_Solution(int[] array) {if (array.length < 1 && array == null) {return 0;}Arrays.sort(array);//排序int len = array.length;int midNum = array[len/2];//中间数int count = 0;//找出这个中间数出现的次数for (int i = 0; i < len; i++) {if (array[i] == midNum) {count++;}}//判断这个次数是否超过一半,如果超过返回这个众数if (count > len/2) {return midNum;}return 0;}
第二种:
假设输入1 3 2 2 2
1️⃣我们需要有一个 int result 和 int times , result 用来存放最终的结果 , times 用来存放出现的次数
2️⃣定义 result 和 times 为第一个数且出现的次数为 1 即 result = 1;times = 1;
3️⃣开始循环 i,从第二个数开始循环,与前一次比较,如果第二个数与第一个数不相等,则 times--;如果第二个数与第一个数相等,则 times++;再次循环,如果某个时候的 times = 0;就从这个数开始,重新定义 result 为这个数,即 result = arr[i],且 times = 1;

4️⃣❗❗❗非常重要的是,需要判断这个数是不是出现的次数大于数组的一半

遍历这个数组,判断 result 出现的次数是不是超过一半
public static int MoreThanHalfNum_Solution1(int[] array) {if (array == null && array.length < 1) {return 0;}int result = array[0];//存放第一个数int times = 1;//第一第一个数的次数为1for (int i = 1; i < array.length; i++) {//从第二个数开始i = 1if (times != 0) {if (array[i] != result) {--times;} else {++times;}} else {result = array[i];//如果这个次数为0,就让result = 这个数times = 1;//次数设定为1}}//再次遍历数组,判断这个result 是不是 众数times = 0;for (int i = 0; i < array.length; i++) {if (array[i] == result) {times++;}}//次数大于一半,返回resultif (times > array.length/2) {return result;}return 0;}相关文章:
【java】笔试强训Day3【在字符串中找出连续最长的数字串与数组中出现次数超过一半的数字】
目录 ⛳选择题 1.以下代码运行输出的是 2.以下程序的输出结果为 3.下面关于构造方法的说法不正确的是 ( ) 4.在异常处理中,以下描述不正确的有( ) 5.下列描述中,错误的是( ) 6.…...
一文7个步骤从0到1教你搭建Selenium 自动化测试环境
【导语】Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。本文详细介绍了搭建自动化测试环境所需的工具,让你学习自动化测试不…...
Oracle目录应急清理
Oracle目录应急清理清理错误位置的归档日志清理30天前的监听告警日志清理监听日志清理30天以前的trace文件清理30天以前的审计日志清理错误位置的归档日志 检查$ORACLE_HOME/dbs下是否有归档文件: ls $ORACLE_HOME/dbs/arch* | wc -l检查和修改归档位置࿱…...
使用 OBS 进行区域录制
1. OBS 与区域录屏 实际上 OBS 的使用场景可谓是与区域录屏格格不入的。 虽然我们依旧有一些办法在 OBS 中达到区域录屏的目的,但其操作实在过于繁琐,还不如直接使用 QQ 或者 Windows 最新的自带截屏录屏来进行区域录屏来的方便实在。 但若非常强烈的…...
aws eks 配置授权额外的用户和角色访问集群
参考资料 https://github.com/kubernetes-sigs/aws-iam-authenticator#full-configuration-formathttps://docs.amazonaws.cn/zh_cn/eks/latest/userguide/add-user-role.html 众所周知,aws eks使用 Authenticator 或者 aws 命令来进行账户级别的用户和角色的授权…...
MagicalCoder可视化开发平台:轻松搭建业务系统,为企业创造更多价值
让软件应用开发变得轻松起来,一起探索MagicalCoder可视化开发工具的魔力!你是否为编程世界的各种挑战感到头痛?想要以更高效、简单的方式开发出专业级的项目?MagicalCoder低代码工具正是你苦心寻找的产品!它是一款专为…...
8个不能错过的程序员必备网站,惊艳到我了!!!
程序员是一个需要不断学习的职业,不少朋友每天来逛CSDN、掘金等网站,但一直都抱着“收藏从未停止,学习从未开始”的态度,别骗自己了兄弟。在编程体系中,有很多不错的小工具,可以极大得提升我们的开发效率。…...
Mybatis(二):实现“增删改查”
Mybatis(二):实现“增删改查”前言一、MyBatis的增删改查1、添加2、修改3、删除4、查询4.1 查询一个实体4.1 查询集合二、MyBatis获取参数值的两种方式(重点)1、单个字面量类型的参数2、多个字面量类型的参数3、map集合…...
Faster RCNN 对血液细胞目标检测
目录 1. 介绍 2. 工具函数介绍 utils 2.1 xml 文件的读取 get_label_from_xml 2.2 绘制边界框 draw_bounding_box...
【数据结构】Java实现栈
目录 1. 概念 2. 栈的使用 3. 自己动手实现栈(使用动态数组实现栈) 1. 创建一个MyStack类 2. push入栈 3. pop出栈 4. 查看栈顶元素 5. 判断栈是否为空与获取栈长 6. toString方法 4. 整体实现 4.1 MyStack类 4.2 Test类 4.3 测试结果 1.…...
【数据结构】排序
作者:✿✿ xxxflower. ✿✿ 博客主页:xxxflower的博客 专栏:【数据结构】篇 语录:⭐每一个不曾起舞的日子,都是对生命的辜负。⭐ 文章目录1.排序1.1排序的概念1.2常见的排序算法2.常见排序算法2.1插入排序2.1.1直接插入…...
过拟合、验证集、交叉验证
过拟合 简单描述:训练集误差小,测试集误差大,模型评估指标的方差(variance)较大; 判断方式: 1、观察 train set 和 test set 的误差随着训练样本数量的变化曲线。 2、通过training accuracy 和…...
原力计划来了【协作共赢 成就未来】
catalogue🌟 写在前面🌟 新星计划持续上新🌟 原力计划方向🌟 原力计划拥抱优质🌟 AIGC🌟 参加新星计划还是原力计划🌟 创作成就未来🌟 写在最后🌟 写在前面 哈喽&#x…...
一文了解Jackson注解@JsonFormat及失效解决
背景 项目中使用WRITE_DATES_AS_TIMESTAMPS: true转换日期格式为时间戳未生效。如下: spring:jackson:time-zone: Asia/Shanghaiserialization:WRITE_DATES_AS_TIMESTAMPS: true尝试是否关于时间的注解是否会生效,使用JsonForma和JsonFiled均失效。 常…...
webpack——使用、分析打包代码
世上本无nodejs js最初是在前端浏览器上运行的语言,js代码一旦脱离了浏览器环境,就无法被运行。直到nodejs的出现,我们在电脑上配置了node环境,就可以让js代码脱离浏览器,在node环境中运行。 浏览器不支持模块化 nodej…...
libvirt零知识学习5 —— libvirt源码编译安装(3)
接前一篇文章libvirt零知识学习4 —— libvirt源码编译安装(2) 在上篇文章及上上篇文章中构建libvirt的时候遇到了一个问题“ERROR: Problem encountered: YAJL 2 is required to build QEMU driver”。上篇文章讲到即使安装了相应的YAJL库仍然不能解决问…...
Nmap 的使用教程
Nmap是一个网络侦测和安全审计工具。它可以用于发现网络上的主机和服务,并提供广泛的信息,其中包括操作系统类型和版本、应用程序和服务的详细信息等。在本文中,我们将介绍如何使用Nmap扫描网络主机,识别开放端口以及进行操作系统…...
async与await异步编程
ECMA2017中新加入了两个关键字async与await 简单来说它们是基于promise之上的的语法糖,可以让异步操作更加地简单明了 首先我们需要用async关键字,将函数标记为异步函数 async function f() {} f()异步函数就是指:返回值为promise对象的函…...
移动应用架构设计:如何转变开发流程
移动应用架构设计:如何转变开发流程 2023 年掌握移动应用程序架构的指南(附案例研究) 如果他们要解决这个问题,开发人员需要了解移动架构设计的最佳实践,使他们能够构建用户喜欢的优化应用程序。其中一些做法包括使用…...
NX二次开发 图层函数总结
简介: NX二次开发 图层相关的总结。 函数: uc5007()uc5008()uc5009()UF_LAYER_ask_category_info()获取图层类别的信息UF_LAYER_ask_category_tag()根据图层分类名称查询其图层分类标识UF_LAYER_ask_status()UF_LAYER_ask_work_layer()UF_LAYER_create…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...
用递归算法解锁「子集」问题 —— LeetCode 78题解析
文章目录 一、题目介绍二、递归思路详解:从决策树开始理解三、解法一:二叉决策树 DFS四、解法二:组合式回溯写法(推荐)五、解法对比 递归算法是编程中一种非常强大且常见的思想,它能够优雅地解决很多复杂的…...
