1.在基本Java类型中,如果不明确指定,整数型的默认是【int double】类型
2.方法通常存储在进程中的【方法区】中
3.不考虑反射,关于私有访问限制符private 修饰的成员变量,以下说法正确的是【只能被该类自身所访问和修改】
public > protected > default > private
4.Math.round(11.5)等于【12】,Math.round(11.5)等于【-11】
解析:java.lang.Math.round函数的作用是返回参数中最接近的值,其中参数四舍五入为正无穷大,所以-11.5四舍五入为-11
Math.ceil方法的功能是向上取整,Math.ceil(11.5)等于【12】 Math.ceil(-11.5)等于【-11】
Math.ceil为向下取整,返回值类型为double
也就是说若参数为正数则把小数"入"(不考虑四舍五入直接入),若参数为负数则把小数去掉
Math.floor方法的功能是向下取整,ceil意思为天花板,floor意思为地板,Math.floor(11.9)等于【11.0】,Math.floor(-11.4)等于【-12.0】
Math.floor方法的功能是向下取整,ceil意思为天花板,floor意思为地板
5.编程题
1. 标题:统计回文 .回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有 对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符 串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。
例如:
A = “aba”,B = “b”。这里有4种把B插入A的办法:
-
在A的第一个字母之前: “baba” 不是回文
-
在第一个字母‘a’之后: “abba” 是回文
-
在字母‘b’之后: “abba” 是回文
-
在第二个字母’a’之后 “abab” 不是回文
所以满足条件的答案为2
输入描述:
每组输入数据共两行。
第一行为字符串A
第二行为字符串B
字符串长度均小于100且只包含小写字母
输出描述: 输出一个数字,表示把字符串B插入字符串A之后构成一个回文串的方法数
示例1:
输入
aba b
输出
2
public class TestDay01_2 {
//是否为回文
public static boolean isHuiwen(String s){
int i = 0;
int j = s.length()-1;
while(i < j){
if(s.charAt(i) != s.charAt(j)){
return false;
}
i++;
j--;
}
return true;
}
public static void main(String[] args) {
System.out.println("请输入两个字符串");
Scanner scanner = new Scanner(System.in);
String A = scanner.nextLine();
String B = scanner.nextLine();
int count = 0;//可以插入的方法数
for(int i = 0;i <= A.length();i++){
StringBuilder sb = new StringBuilder(A);
sb.insert(i,B);//把B插入到sb中,位置为i
if(isHuiwen(sb.toString())){
count++;//判断回文如果是回文count+1
}
}
System.out.println("可以插入的方式有"+count+"种");
}
}
- 编程题2:有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。
给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。
public int findKth(int[] a, int low, int high, int k) {
int part = partation(a, low, high);
if(k == part - low + 1) return a[part];//如果是第一大,直接return
//如果k在右半边,low = part + 1,k = k - (part - low + 1).
else if(k > part - low + 1) return findKth(a, part + 1, high, k - part + low -1);
//如果k在左半边,high = part - 1.
else return findKth(a, low, part -1, k);
}
//快排
public int partation(int[] a,int low,int high){
int key = a[low];
while(low < high){
while(low < high && a[high] <= key){
a[low] = a[high];
high--;
}
while(low < high && a[low] >= key){
a[high] = a[low];
low++;
}
}
a[low] = key;
return key;
}