【笔试强化】Day 2

文章目录

  • 一、选择
    • 1.
    • 2.(写错)
    • 3.
    • 4.
    • 5.
    • 6.(不会)
    • 7.(不清晰)
    • 8. (不会)
    • 9.
    • 10.(写错)
  • 二、编程
    • 1. 排序子序列
      • 解法:
      • 代码:
    • 2. 倒置字符串
    • 解法:
      • 代码:

一、选择

1.

【笔试强化】Day 2_第1张图片

正确答案:D

2.(写错)

【笔试强化】Day 2_第2张图片

正确答案:B

因为 toLowerCase 在转化完之后,是创建了一个新的对象
所以这两个肯定不同

3.

【笔试强化】Day 2_第3张图片
【笔试强化】Day 2_第4张图片

正确答案:A

静态方法的调用不依赖于任何对象

4.

【笔试强化】Day 2_第5张图片

正确答案:A

5.

【笔试强化】Day 2_第6张图片
【笔试强化】Day 2_第7张图片

正确答案:B

6.(不会)

【笔试强化】Day 2_第8张图片

正确答案:D

静态成员变量不能再方法中
应该在类中

7.(不清晰)

【笔试强化】Day 2_第9张图片

正确答案:D

A:abstract 不能修饰字段
B:抽象方法不能加{}

8. (不会)

【笔试强化】Day 2_第10张图片
在这里插入图片描述

正确答案:C

A:class 中的 constructor 可以省略
B:constructor 与 class 同名,方法也可以

9.

【笔试强化】Day 2_第11张图片

正确答案:A

10.(写错)

【笔试强化】Day 2_第12张图片

正确答案:D

要实现接口肯定得是 public 修饰

二、编程

1. 排序子序列

【笔试强化】Day 2_第13张图片
【笔试强化】Day 2_第14张图片
原题链接


解法:

首先我们要知道什么是非递增排列,什么是非递减排列

1,2,3,4,5 就是递增排列
9,8,7,6,5 就是递减排列

1,2,3,3,4,5,8,8 就是非递增排列
9,8,7,7,6,5,5,2,1 就是非递增排列

非递减就是 a[i]<=a[i+1]
递减就是 a[i]>a[i+1]
非递增就是 a[i]>=a[i+1]
递增就是 a[i]

要循环判断arr[i] 与arr[i+1] 的大小
注意不要数组越界


代码:

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int n = in.nextInt();
            int[] arr = new int[n + 1];
            for (int i = 0; i < n; i++) {
                arr[i] = in.nextInt();
            }

            int i = 0;
            int count = 0;

            while(i < n) {
                //非递减
                if(arr[i] < arr[i+1]) {
                    while(i < n && arr[i] < arr[i + 1]) {
                        i++;
                    }
                    count++;
                    i++;
                }else if(arr[i] == arr[i+1]) {
                    i++;
                }else {
                    while(i < n && arr[i] > arr[i + 1]) {
                        i++;
                    }
                    count++;
                    i++;
                }
            }
            System.out.println(count);
        }
    }
}

【笔试强化】Day 2_第15张图片

2. 倒置字符串

【笔试强化】Day 2_第16张图片
原题链接


解法:

使用字符串分割将字符串以 空格 分开
在把字符数组逆序输出


代码:

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String s = in.nextLine();
            int count = 0;
            char[] ch = s.toCharArray();
            for(int i = 0; i < ch.length; i++) {
                if(ch[i] == ' ') {
                    count++;
                }
            }
            String[] ret = s.split(" ",count + 1);
            int m = ret.length;
            for(int i = m - 1; i >= 0; i--) {
                System.out.print(ret[i] + " ");
            }
        }
    }
}

【笔试强化】Day 2_第17张图片

你可能感兴趣的:(笔试强化,java,开发语言)