【强训】Day06

news2024/11/20 13:24:49

努力经营当下,直至未来明朗!

文章目录

  • 一、选择
  • 二、编程
    • 1. 不要二
    • 2. 把字符串转换成整数
  • 答案
    • 1. 选择
    • 2. 编程


普通小孩也要热爱生活!

一、选择

  1. 关于抽象类与最终类,下列说法错误的是?

A 抽象类能被继承,最终类只能被实例化。
B 抽象类和最终类都可以被声明使用
C 抽象类中可以没有抽象方法,最终类中可以没有最终方法
D 抽象类和最终类被继承时,方法可以被子类覆盖

  1. 有六个元素6,5,4,3,2,1顺序入栈,问下列哪一个不是合法的出栈序列?()

A 5 4 3 6 2 1
B 4 5 3 1 2 6
C 3 4 6 5 2 1
D 2 3 4 1 5 6

  1. 阅读下列程序,选择哪一个是正确的输出结果()
class HelloA{
public HelloA()
    {
        System.out.println("I’m A class ");
    }
    static
    {
    System.out.println("static A");
    }
}
public class HelloB extends HelloA{
    public HelloB()
    {
        System.out.println("I’m B class");
    }
    static{
        System.out.println("static B");
    }
    public static void main (String[] args){
        new HelloB();
    }
}

A static A I’m A class static B I’m B class
B I’m A class I’m B class static A static B
C static A static B I’m A class I’m B class
D I’m A class static A I’m B class static B

  1. 下列代码的输出结果是____
boolean b=true?false:true==true?false:true;
System.out.println(b);

A true
B false
C null
D 空字符串

  1. 在Java中下面Class的声明哪些是错误的?【多选】

A public abstract final class Test { abstract void method(); }
B public abstract class Test { abstract final void method(); }
C public abstract class Test { abstract void method() { } } D public class Test { final void method() { } }

  1. java语言规定构造方法只能通过new自动调用。(判断正误)

二、编程

1. 不要二

不要二
二货小易有一个W*H的网格盒子,网格的行编号为0~ H-1,网格的列编号为0~W-1。每个格子至多可以放一
块蛋糕,任意两块蛋糕的欧几里得距离不能等于2

对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:
( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根

小易想知道最多可以放多少块蛋糕在网格盒子里。


2. 把字符串转换成整数

把字符串转成整数
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为 0 或者字符串不是一个合法的数值则返回 0。

数据范围:字符串长度满足 0 <= n <= 100
进阶:空间复杂度 O(1) ,时间复杂度 O(n)

注意:
① 字符串中可能出现任意符号,出现除 +/- 以外符号时直接输出 0
②字符串中可能出现 +/- 且仅可能出现在字符串首位


答案

1. 选择

  1. 首先要搞懂抽象类(abstract修饰)和最终类(final修饰)。

① 抽象类中可以有抽象方法,也可以没有抽象方法。
② 抽象类当然可以被继承,因为它就是用来继承的
③ 继承抽象类,若有抽象方法,则子类必须将其抽象方法实现/重写。
④ 抽象类中的非抽象方法可以被重写。

最终类和抽象类正好相反。

⑤ 加上final的类就叫最终类,加上final的方法就叫最终方法。
⑥ 最终类中可以有最终方法,也可以没有。
最终类不能有子类,最终方法不能被重写
final类不能被继承或修改,final方法可以被继承但不能被覆盖。
⑨ final类可以new实例。

故:选D

  1. 栈是先进后出
    ② 并且不是一次性进栈后才出栈,可以边进栈边出栈。

故:选C

  1. 类的初始化顺序是:
    ① 初始化父类中的静态成员变量和静态代码块。
    ② 初始化子类中的静态成员变量和静态代码块。
    ③ 初始化父类中的普通成员变量和代码块,再执行父类中的构造方法。
    ④ 初始化子类中的普通成员变量和代码块,再执行子类中的构造方法。
    [静态 -> 普通、 父类 -> 子类]
    static修饰的只初始化一次,并且最先输出。

故:选C

  1. 本题考察【优先级问题
    ① 优先级:== 高于 ?: 高于 =
    优先级参考:操作符属性
    boolean b=true?false:true==true?false:true;

故:
① 第一步执行:true==true,结果为true。
② 此时表达式为boolean b = true?false:true?false:true
③ 第二步:执行三目运算符,三目运算符按照从右至左原则,true?false:false,结果为false 。
④ 此时表达式为boolean b = true?false:false;
⑤ 所以,最终结果为false

故:选B

  1. 考察abstract
    抽象类
    ① 抽象方法不能是private,默认是public。(可以使用public、protected、default)
    ② 抽象方法不能被final和static修饰,因为抽象方法要被子类重写
    抽象类必须被继承,并且继承后子类要重写父类中的抽象方法,否则子类也是抽象类,必须要使用 abstract 修饰
    ④ 抽象类不能实例化
    ⑤ 抽象方法没有方法体

故:选ABC

  1. ① 在类的 其他构造方法中可以用this(参数) 的方式调用其他构造方法;
    ② 在类的子类中则可以通过super(参数)调用父类中指定的构造方法
    ③ 在反射中可以使用 newInstance() 的方式调用。

故:错误×

  1. 访问修饰符作用范围由大到小排列:public > protected > default > private

  2. 无路如何,如果有finally,一定要执行finally后才可以进行方法的返回!! 然后再去接着执行方法后面的内容。


2. 编程

  1. 不要二
    1)思路:

① 关键:一个坐标位置放了蛋糕,跟其欧几里得距离为2的位置不能放蛋糕,这个就是关键点
② 也就是说:如果(x1,y1)放了蛋糕,则满足 ( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) == 4的(x2,y2)不能放蛋糕。【注:sqrt(x)是x开算术平方根
③ 但是注意分析:因为平方保证了结果的非负性,则只可能存在0+4=4,1+3=4,2+2=4,3+1=4,4+0=4这五种情况;再者,(x1-x2)的结果只能是整数,所以在平方之后对结果是有要求的。所以:最终只可能存在0+4=4,4+0=4两种结果。
④ 即:(x1==x2)&&(|y1-y2|==2) 或者 (|x1-x2|==2)&&(y1==y2)
⑤ 使用标记法:先全部初始化为0,不能存放蛋糕的位置修改为1.【不能存放蛋糕的位置是针对0的位置来寻找的】
⑥ 使用遍历的方法。

2)代码:

import java.util.Scanner;

// 只能是长相差2 或者 宽相差2
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int pow = in.nextInt();
        int col = in.nextInt();

        // 计算能放多少cake
        int[][] cake = new int[pow][col];
        int count = 0;
        // 进行遍历
        for (int i = 0; i < pow; i++) {
            for (int j = 0; j < col; j++) {
                if(cake[i][j] == 0) {
                    count++;
                    // 进行行、列不能存放蛋糕位置的标记
                    // 但是一定要注意:标记一定是针对可以存放蛋糕的位置来标记找不能存放位置的!
                    if(i+2 < pow) {
                        cake[i+2][j] = 1;
                    }
                    if(j+2<col) {
                        cake[i][j+2] = 1;
                    }
                }
            }
        }

        // 此时已经计算出结果
        System.out.println(count);
    }
}

  1. 把字符串转换成整数
    1)思路:

① 其实就是从左往右,上次计算的结果*10,相当于10进制进位,然后加当前位的值。
如:123:sum=0, sum=sum *10+1, sum=sum * 10+2, sum=sum *10+3
② 本题的关键其实就是边界值问题
空字符串、正负号处理以及数字串中存在非法字符。
③ 方法:将字符串转为数组。
④ 计算的时候再注意一个点:数字=字符-'0'

2)代码:

public class Solution {
    public int StrToInt(String str) {
        // 首先将字符串转为数组
        char[] ch = str.toCharArray();
        // 判空
        if(str.isEmpty()) {
            return 0;
        }
        // 正负号处理
        int symbol = 1; // 记录正负数情况,默认是正数
        if(ch[0] == '+') {
            symbol = 1;
            ch[0] = '0';  // 该位是决定正负数的,使用完之后就置零,便于后续计算值
        }
        if(ch[0] == '-') {
            symbol = -1;
            ch[0] = '0';  // 该位是决定正负数的,使用完之后就置零,便于后续计算值
        }

        // 进行遍历求整数,同时判断是否有非法字符
        int sum = 0;
        // 注意,循环还必须从0开始,因为不确定首尾到底是不是符号位
        for (int i = 0; i < ch.length; i++) {
            if(ch[i]<'0' || ch[i]>'9') {
                // 这里是不合法的情况
                sum = 0;
                break;
            }
            // 这里是合法的,那就进行整数计算
            // 是从左到右的,每次*10+当前数就行
            // 还要注意一个点:ch[i]的元素类型是char,要以整数方式需要每个字符-'0'
            sum = sum*10 + ch[i] - '0';
        }


        // 最后返回结果
        sum = sum * symbol; // 千万不要忘记符号!
        return sum;
    }
}

yy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/156762.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言零基础项目:六边形扫雷寻宝模式,详细思路+源码分享

程序简介六边形扫雷&#xff0c;寻宝模式&#xff0c;稍稍介绍一下。他也是要把所有安全的地方点出来。他没有扫雷模式的消零算法。每一个安全的点都需要单独挖出来&#xff0c;一次显示一个格子。添加了生命值的概念&#xff0c;也就是说存在一定的容错。显示的数字有别于扫雷…

亚马逊云科技 2022 re:Invent 观察 | 天下武功,唯快不破

引子“天下武功&#xff0c;无坚不摧&#xff0c;唯快不破”&#xff0c;相信大家对星爷电影《功夫》中的这句话耳熟能详。实际上&#xff0c;“天下武功&#xff0c;唯快不破”最早出自古龙先生的著名武侠小说《小李飞刀》&#xff1a;“小李飞刀&#xff0c;例无虚发&#xf…

LeetCode(String) 2325. Decode the Message

1.问题 You are given the strings key and message, which represent a cipher key and a secret message, respectively. The steps to decode message are as follows: Use the first appearance of all 26 lowercase English letters in key as the order of the substit…

React生命周期详解

React 类组件生命周期 React 有两个重要阶段 render 阶段和 commit 阶段&#xff0c;React 在调和( render )阶段会深度遍历 React fiber 树&#xff0c;目的就是发现不同( diff )&#xff0c;不同的地方就是接下来需要更新的地方&#xff0c;对于变化的组件&#xff0c;就会执…

Linux杂谈之java命令

一 java &#xff08;1&#xff09;基本解读 ① JAVA8 官方命令行参数 linux版的java 重点关注&#xff1a; java、javac、jar、keytool 这三个参数学习方式&#xff1a; 通过man java和官方文档快速学习 如何在官网搜索 java的命令行参数用法 ② 语法格式 ③ 描述 1)…

Java开发为何深入人心 ?我来带你解开 Spring、IoC、DI 的秘密~

目录 一、什么是Spring? 1.1、什么是容器&#xff1f; 1.2、IoC是什么&#xff1f; 1.3、IoC带来了什么好处&#xff1f; 二、什么是DI&#xff1f; 2.1、IoC和DI有什么关系&#xff1f; 一、什么是Spring? 一句概括&#xff0c;Spring 是包含了众多⼯具⽅法的 IoC 容器…

RHCE第七天之防火墙详解

文章目录一、 基本概念二、iptables三、firewalld四、实验练习一、 基本概念 什么是防火墙&#xff1f;路由策略和策略路由/ipsec vpn gre hdlc ppp 硬件 iDS 在计算中&#xff0c;防火墙是基于预定安全规则来监视和控制传入和传出网络流量的网络安全系统。该计算机流入流出的…

React基础梳理,万字总结,总能帮到你~

第1章&#xff1a;React入门 1.1.React简介 1.英文官网: reactjs.org/2.中文官网: react.docschina.org/3.用于动态构建用户界面的 JavaScript 库(只关注于视图)4.Facebook开源 React的特点 1.声明式编码2.组件化编码3.React Native 编写原生应用4.高效&#xff08;优秀的D…

CodeCraft-22 and Codeforces Round #795 (Div. 2)

A. Beat The Odds 题目链接&#xff1a; Problem - A - Codeforces 样例输入&#xff1a; 2 5 2 4 3 6 8 6 3 5 9 7 1 3样例输出&#xff1a; 1 0题意&#xff1a;给定一个长度为n的数组&#xff0c;我们可以对这个数组进行操作&#xff0c;每次操作可以删除一个数&#xff…

计算机防勒索病毒之系统主机加固篇

​ 近年来&#xff0c;计算机以及互联网应用在中国得到普及和发展&#xff0c;已经深入到社会每个角落&#xff0c;政府&#xff0c;经济&#xff0c;军事&#xff0c;社会&#xff0c;文化和人们生活等各方面都越来越依赖于计算机和网络&#xff0c;电子政务&#xff0c;无纸办…

如何把WPS转换成PDF格式?新手也能轻松学会的方法

WPS文件是我们工作中必不可少的&#xff0c;它可以编辑文本、记录数据、展示文档等等&#xff0c;都能更好的帮我们处理工作&#xff0c;不过有的时候WPS文件在不同设备上打开可能会出现格式错误或者乱码等一系列的问题&#xff0c;这时候我们就可以将WPS文件转换成PDF文件&…

[Leetcode] 传递信息(有向图路径)

小朋友 A 在和 ta 的小伙伴们玩传信息游戏&#xff0c;游戏规则如下&#xff1a;有 n 名玩家&#xff0c;所有玩家编号分别为 0 &#xff5e; n-1&#xff0c;其中小朋友 A 的编号为 0每个玩家都有固定的若干个可传信息的其他玩家&#xff08;也可能没有&#xff09;。传信息的…

Python数据分析之Pandas

文章目录前言一、输入输出1.1 txt1.2 csv1.3 excel1.4 json1.5 sql1.6 html1.7 latex二、数据结构2.1 一维数据 Series2.2 二维数据 DataFrame2.2.1 数据查看2.2.2 数据遍历2.2.3 数据选取2.2.4 数据处理2.2.5 数据统计2.3 索引对象 Index2.4 时间戳 TimeStamp三、窗口函数3.1 …

【每日一题】【LeetCode】【第十天】只出现一次的数字

解决之路 题目描述 测试案例&#xff08;部分&#xff09; 第一次 和昨天的题目有点类似&#xff0c;昨天是找重复&#xff0c;今天是找不重复。那直接按昨天第二次思路来写这次的代码。 class Solution(object):def singleNumber(self, nums):nums.sort()for i in range(l…

在线计算lncRNA-mRNA共表达相关系数,并使用cytoscape绘制共表达网络图

长链非编码RNA(Long noncoding RNA)是一类长度大于200 nt&#xff0c;不编码蛋白质的RNA。LncRNA的功能多样&#xff0c;如图1所示&#xff0c;A&#xff1a;充当蛋白质和染色质的连接因子&#xff0c;引起染色质重构&#xff08;chromatin remodeling&#xff09;&#xff1b;…

内存函数细节及实现

1、memcpy内存拷贝 不仅可以拷贝&#xff0c;还可以拷贝整型、结构体等&#xff0c;因为直接拷贝了内存。 因为不知道要拷贝的类型是什么&#xff0c;所以都用void*来接收。num是拷贝的字节数 拷贝时可任意选择dest&#xff0c;src&#xff0c;以及字节数。返回void*类型的指…

01什么是FPGA?

FPGA 是一种硬件可重构的体系结构。它的英文全称是Field Programmable Gate Array&#xff0c;中文名是现场可编程门阵列。 FPGA就是一个可以通过编程来改变内部结构的芯片&#xff0c;FPGA常年来被用作专用芯片&#xff08;ASIC&#xff09;的小批量替代品&#xff0c; 同时也…

PMP考试流程是怎么样的?

别的问题我可能不太了解&#xff0c;但考试流程我绝对是非常清楚了&#xff01;话不多说&#xff0c;直接放流程给到大家&#xff0c;好歹通过考试了&#xff0c;基本的情况还是能给大家讲解一下的。希望能够给有需要的同学提供点帮助。 先把考试的流程看仔细了&#xff0c;之…

核心乐理---音程名称

定义 音程是连个音之间的距离&#xff0c;是音乐中的距离&#xff0c;可以便于我们描述音符间的距离&#xff0c;便于与他人进行沟通交流。 就好像是厘米&#xff0c;米这些这些物理中的长度单位一样 度 度是音程的单位。 从一个音的名字念到另一个音的名字&#xff0c;一共念…

瑞幸“复制”拼多多

&#xff08;图片来源于网络&#xff0c;侵删&#xff09; 来源 | 螳螂观察 文 | 叶小安 在电商界&#xff0c;拼多多杀出阿里京东围剿重围&#xff0c;奠定现今电商行业“猫狗拼”三分天下的格局&#xff0c;这是多少后辈们参考的范本。 在咖啡界&#xff0c;瑞幸凭借低价…