重庆网站模板建站公司河南网站推广公司
文章目录
- 一、选择
- 1.
- 2.(写错)
- 3.
- 4.
- 5.
- 6.(不会)
- 7.(不清晰)
- 8. (不会)
- 9.
- 10.(写错)
- 二、编程
- 1. 排序子序列
- 解法:
- 代码:
- 2. 倒置字符串
- 解法:
- 代码:
一、选择
1.
正确答案:D
2.(写错)
正确答案:B
因为 toLowerCase 在转化完之后,是创建了一个新的对象
所以这两个肯定不同
3.
正确答案:A
静态方法的调用不依赖于任何对象
4.
正确答案:A
5.
正确答案:B
6.(不会)
正确答案:D
静态成员变量不能再方法中
应该在类中
7.(不清晰)
正确答案:D
A:abstract 不能修饰字段
B:抽象方法不能加{}
8. (不会)
正确答案:C
A:class 中的 constructor 可以省略
B:constructor 与 class 同名,方法也可以
9.
正确答案:A
10.(写错)
正确答案:D
要实现接口肯定得是 public 修饰
二、编程
1. 排序子序列
原题链接
解法:
首先我们要知道什么是非递增排列,什么是非递减排列
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]<a
要循环判断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 处理多个 caseint 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);}}
}
2. 倒置字符串
原题链接
解法:
使用字符串分割将字符串以 空格 分开
在把字符数组逆序输出
代码:
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 处理多个 caseString 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] + " ");}}}
}