当前位置: 首页 > news >正文

【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 中的 nameprivate 修饰符修饰的只能在类内进行访问

通过 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块可以同时省略

🙈大家觉得答案是什么呢


🙉答案是 啦~

🔎思路分析:在异常处理中 try 与 catch 块是不可以省略的,并给 catch 块可以写很多个;而 finally 块可以省略

5.下列描述中,错误的是(        )

A SQL语言又称为结构化查询语言

B java中”static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问

C 面向对象开发中,引用传递意味着传递的并不是实际的对象,而是对象的引用,因此,外部对引用对象所做的改变不会反映到所引用的对象上

D java是强类型语言,javascript是弱类型语言 E 面向对象的三大特性包括:封装,继承,多态

🙈大家觉得答案是什么呢


🙉答案是 啦~

6.下列哪种说法是正确的?

A 实例方法可直接调用超类的实例方法

B 实例方法可直接调用超类的类方法

C 实例方法可直接调用本类的类方法

D 实例方法可直接调用其他类的实例方法

🙈大家觉得答案是什么呢


🙉答案是 啦~

🔎思路分析

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

🙈大家觉得答案是什么呢


🙉答案是 啦~

🔎思路分析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!");

🙈大家觉得答案是什么呢


🙉答案是 啦~

🔎思路分析:这是在抛异常,而异常是一个类,则没有 new 是错误的,并且是类名小括号,不可以有其他的

thorw的使用格式是:throw new Exception("语句")

9.以下关于集合类 ArrayList 、 LinkedList 、 HashMap 描述错误的是(        )

A HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值

B ArrayList和LinkedList均实现了List接口

C 添加和删除元素时,ArrayList的表现更佳

D ArrayList的访问速度比LinkedList快 

🙈大家觉得答案是什么呢


🙉答案是 啦~

🔎思路分析:HashMap实现了Map接口,它允许任何类型的键和值对象,并允许将null用作键或值。ArrayList和LinkedList均实现了List接口。ArrayList的访问速度比LinkedList快,LinkedList需要遍历访问。

添加和删除元素时,ArrayList的表现最差,因为1️⃣添加元素的时候,需要把这个元素插入到数组中,那么之后的元素都需要向后移动2️⃣删除这个元素的时候,需要把之后的元素都向前移动; 因此 ArrayList 不适合用来添加和删除元素,而是用来查找,并且是通过下表进行查找

10.Java程序中的类名必须与存放该类的文件名相同

A 对                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.在异常处理中&#xff0c;以下描述不正确的有&#xff08; &#xff09; 5.下列描述中&#xff0c;错误的是&#xff08; &#xff09; 6.…...

一文7个步骤从0到1教你搭建Selenium 自动化测试环境

【导语】Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。本文详细介绍了搭建自动化测试环境所需的工具&#xff0c;让你学习自动化测试不…...

Oracle目录应急清理

Oracle目录应急清理清理错误位置的归档日志清理30天前的监听告警日志清理监听日志清理30天以前的trace文件清理30天以前的审计日志清理错误位置的归档日志 检查$ORACLE_HOME/dbs下是否有归档文件&#xff1a; ls $ORACLE_HOME/dbs/arch* | wc -l检查和修改归档位置&#xff1…...

使用 OBS 进行区域录制

1. OBS 与区域录屏 实际上 OBS 的使用场景可谓是与区域录屏格格不入的。 虽然我们依旧有一些办法在 OBS 中达到区域录屏的目的&#xff0c;但其操作实在过于繁琐&#xff0c;还不如直接使用 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 众所周知&#xff0c;aws eks使用 Authenticator 或者 aws 命令来进行账户级别的用户和角色的授权…...

MagicalCoder可视化开发平台:轻松搭建业务系统,为企业创造更多价值

让软件应用开发变得轻松起来&#xff0c;一起探索MagicalCoder可视化开发工具的魔力&#xff01;你是否为编程世界的各种挑战感到头痛&#xff1f;想要以更高效、简单的方式开发出专业级的项目&#xff1f;MagicalCoder低代码工具正是你苦心寻找的产品&#xff01;它是一款专为…...

8个不能错过的程序员必备网站,惊艳到我了!!!

程序员是一个需要不断学习的职业&#xff0c;不少朋友每天来逛CSDN、掘金等网站&#xff0c;但一直都抱着“收藏从未停止&#xff0c;学习从未开始”的态度&#xff0c;别骗自己了兄弟。在编程体系中&#xff0c;有很多不错的小工具&#xff0c;可以极大得提升我们的开发效率。…...

Mybatis(二):实现“增删改查”

Mybatis&#xff08;二&#xff09;&#xff1a;实现“增删改查”前言一、MyBatis的增删改查1、添加2、修改3、删除4、查询4.1 查询一个实体4.1 查询集合二、MyBatis获取参数值的两种方式&#xff08;重点&#xff09;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. 自己动手实现栈&#xff08;使用动态数组实现栈&#xff09; 1. 创建一个MyStack类 2. push入栈 3. pop出栈 4. 查看栈顶元素 5. 判断栈是否为空与获取栈长 6. toString方法 4. 整体实现 4.1 MyStack类 4.2 Test类 4.3 测试结果 1.…...

【数据结构】排序

作者&#xff1a;✿✿ xxxflower. ✿✿ 博客主页&#xff1a;xxxflower的博客 专栏&#xff1a;【数据结构】篇 语录&#xff1a;⭐每一个不曾起舞的日子&#xff0c;都是对生命的辜负。⭐ 文章目录1.排序1.1排序的概念1.2常见的排序算法2.常见排序算法2.1插入排序2.1.1直接插入…...

过拟合、验证集、交叉验证

过拟合 简单描述&#xff1a;训练集误差小&#xff0c;测试集误差大&#xff0c;模型评估指标的方差&#xff08;variance&#xff09;较大&#xff1b; 判断方式&#xff1a; 1、观察 train set 和 test set 的误差随着训练样本数量的变化曲线。 2、通过training accuracy 和…...

原力计划来了【协作共赢 成就未来】

catalogue&#x1f31f; 写在前面&#x1f31f; 新星计划持续上新&#x1f31f; 原力计划方向&#x1f31f; 原力计划拥抱优质&#x1f31f; AIGC&#x1f31f; 参加新星计划还是原力计划&#x1f31f; 创作成就未来&#x1f31f; 写在最后&#x1f31f; 写在前面 哈喽&#x…...

一文了解Jackson注解@JsonFormat及失效解决

背景 项目中使用WRITE_DATES_AS_TIMESTAMPS: true转换日期格式为时间戳未生效。如下&#xff1a; spring:jackson:time-zone: Asia/Shanghaiserialization:WRITE_DATES_AS_TIMESTAMPS: true尝试是否关于时间的注解是否会生效&#xff0c;使用JsonForma和JsonFiled均失效。 常…...

webpack——使用、分析打包代码

世上本无nodejs js最初是在前端浏览器上运行的语言&#xff0c;js代码一旦脱离了浏览器环境&#xff0c;就无法被运行。直到nodejs的出现&#xff0c;我们在电脑上配置了node环境&#xff0c;就可以让js代码脱离浏览器&#xff0c;在node环境中运行。 浏览器不支持模块化 nodej…...

libvirt零知识学习5 —— libvirt源码编译安装(3)

接前一篇文章libvirt零知识学习4 —— libvirt源码编译安装&#xff08;2&#xff09; 在上篇文章及上上篇文章中构建libvirt的时候遇到了一个问题“ERROR: Problem encountered: YAJL 2 is required to build QEMU driver”。上篇文章讲到即使安装了相应的YAJL库仍然不能解决问…...

Nmap 的使用教程

Nmap是一个网络侦测和安全审计工具。它可以用于发现网络上的主机和服务&#xff0c;并提供广泛的信息&#xff0c;其中包括操作系统类型和版本、应用程序和服务的详细信息等。在本文中&#xff0c;我们将介绍如何使用Nmap扫描网络主机&#xff0c;识别开放端口以及进行操作系统…...

async与await异步编程

ECMA2017中新加入了两个关键字async与await 简单来说它们是基于promise之上的的语法糖&#xff0c;可以让异步操作更加地简单明了 首先我们需要用async关键字&#xff0c;将函数标记为异步函数 async function f() {} f()异步函数就是指&#xff1a;返回值为promise对象的函…...

移动应用架构设计:如何转变开发流程

移动应用架构设计&#xff1a;如何转变开发流程 2023 年掌握移动应用程序架构的指南&#xff08;附案例研究&#xff09; 如果他们要解决这个问题&#xff0c;开发人员需要了解移动架构设计的最佳实践&#xff0c;使他们能够构建用户喜欢的优化应用程序。其中一些做法包括使用…...

NX二次开发 图层函数总结

简介&#xff1a; NX二次开发 图层相关的总结。 函数&#xff1a; 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…...

windows微服务部署

windows部署一.nginx部署1.nginx 官网下载2. 配置nginx3.配置nigix 防止nigix刷新404不生效二.配置redis部署成服务1.在系统配置中 配置为系统变量2.打开快捷登录服务管理#3. 开启redis三.windows部署jar包一.nginx部署 1.nginx 官网下载 地址 官网地址 安装 windows版本 可安…...

Java四种内部类(看这一篇就够了)

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了 博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点!人生格言&#xff1a;当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔&#x1f9be;&am…...

蓝桥杯刷题第二十天

第一题&#xff1a;纸张尺寸问题描述在 ISO 国际标准中定义了 A0 纸张的大小为 1189mm 841mm, 将 A0 纸 沿长边对折后为 A1 纸, 大小为 841mm 594mm, 在对折的过程中长度直接取 下整 (实际裁剪时可能有损耗)。将 A1 纸沿长边对折后为 A2 纸, 依此类推。输入纸张的名称, 请输出…...

如何通过命令行查看CentOS版本信息和linux系统信息

1.如何查看已安装的CentOS版本信息&#xff1a; 1.cat /proc/version 2.uname -a 3.uname -r 4.cat /etc/centos-release 5.lsb_release -a 6.hostnamectl1. 第一种方式输出的结果是&#xff1a; Linux version 3.10.0-1127.el7.x86_64 (mockbuildkbuilder.bsys.centos.org) …...

oracle查询表空间大小以及每个表所占空间的大小

1、查询数据库中所有的表空间以及表空间所占空间的大小&#xff0c;直接执行语句就可以了&#xff1a; select tablespace_name, sum(bytes)/1024/1024 from dba_data_files group by tablespace_name; 2、查看表空间物理文件的名称及大小 select tablespace_name, file_id, …...

C语言通讯录应用程序:从设计到实现

hello&#xff0c;这期给大家带来C语言实现静态通讯录,主要也是建立起创建大项目的思维&#xff0c;与往期这两篇博客有点类似 C语言实现三子棋 C语言实现扫雷 文章目录&#x1f913;通讯录介绍&#x1f636;‍&#x1f32b;️效果演示&#x1f920;主题框架头文件测试文件函数…...

银河麒麟v10sp2安装nginx

nginx官网下载&#xff1a;http://nginx.org/download/ 银河麒麟系统请先检查yum源是否配置&#xff0c;若没有配置请参考&#xff1a;https://qdhhkj.blog.csdn.net/article/details/129680789 一、安装 1、yum安装依赖 yum install gcc gcc-c make unzip pcre pcre-devel …...

华为笔试题OD

华为笔试题OD 1题 华为od-2022.11.5-k优雅阈值 题目内容 如果一个数组中出现次数最多的元素出现大于等于 &#xfffd;k 次&#xff0c; 被称为 &#xfffd;−优雅数组k−优雅数组 &#xff0c; &#xfffd;k 也可以被称为优雅阈值。 例如&#xff0c;数组 [1,2,3,1,2,3,…...

Win10+Anconda安装.whl文件到指定环境——以pycocotools为例

Anconda安装.whl文件到指定环境1.Whl文件2.pycocotools安装前言&#xff1a;本篇文章主要记录了两个问题&#xff1a; &#xff08;1&#xff09;Win10环境下&#xff0c;利用Anconda安装.whl文件到指定环境的方法&#xff1b; &#xff08;2&#xff09;Win10系统安装pycocoto…...

全自动托盘四向穿梭车|拥有输送系统提升机AGV的托盘四向穿梭车立体库的软硬件配置系统

托盘四向穿梭车一般是在两向穿梭车的结构上设计改进而来的&#xff0c;托盘两向穿梭车在取货时可以实现“先进先出”或“先入后出”模式&#xff0c;多用于量大且品种少的行业。但是随着市场的不断迅速发展&#xff0c;各大企业、商家不仅对于小批量、多批次的需求越来越大&…...