牛客网&领扣网 Day2 习题总结

一、选择题

1.

解析:

A是静态方法,可以直接用如下形式调用 Test.method(); 

B是普通public方法,必须实例化类,Test test = new Test(); test.method(); 

C是protected方法,用法同B,只是对于其他的外部class,protected就变成private; 

D是抽象方法,必须被子类继承并重写,然后调用的方式同B。 

故答案:选 A

2.

解析:

这题考的是对方法重载(overload)的理解。

重载要求:在同一个类中,有两个或两个以上的方法,

1、方法名一致;

2、形参列表不一致,即:形参个数不一致 或 形参类型不一致 或 不同类型的形参的顺序不一致(其中有一项不一样即可),并且与形参变量名是否相同无关;

3、方法返回值类型可以一样,也可以不一样

3.

解析:


值为1的a属于类变量也叫作成员变量,值为10的a是局部变量 首先a++时就近原则,用局部变量10来加,Text.a直接用类名调用成员变量的情况,只能是static 修饰的成员变量1来加,然后又实例化了对象,在输出中第一个a= 用就近原则输出11,第二个t.a 对象只能调用类变量输出2

 4.

解析:

init 初始化,start启动运行,paint 窗口最小化等时候需要暂停,stop 停止,destory 销毁;

5.

解析:

[://]

这是个很明显的陷阱

[ ] 里面是不重复的,所以等价于[:/]

如果[ ]后面没有带+号的话,是不会贪婪匹配的,就只能匹配到://中的其中一个

 6.

解析:

希尔排序最后一趟已经基本有序,比较次数和移动次数更少。

7.

解析:

java中接口只能使用public修饰,接口内方法默认为public abstrac

8.

解析:

局域网主要涉及物理层和数据链路层两个层次。

不过IEEE802这一系列标准或协议则主要只讨论数据链路层问题,属于数据链路层协议。

9.

解析:

临界区是指进程访问临界资源的那段代码。临界资源指的是互斥访问的资源

10.

解析:

请注意 400~499 这个范围的报文段没有接受到,所以确认号应该是400

11.

解析:

在源码中 toLowerCase 是重新 new String()

所以为 == 是比较对象是否是同一个对象,所以为 false 。

 

12.

解析:

一般的ISP会对宽带账号进行MAC地址绑定,故通常的做法有两种,1.清除MAC地址绑定2.克隆MAC地址

13.

解析:

链接分硬链接和符号链接。
符号链接可以建立对于文件和目录的链接。符号链接可以跨文件系统,即可以跨磁盘分区。符号链接的文件类型位是l,链接文件具有新的i节点。
硬链接不可以跨文件系统。它只能建立对文件的链接,硬链接的文件类型位是-,且硬链接文件的i节点同被链接文件的i节点相同。

 

二、编程题

 

解析:

利用一个变量num记录'L'('R')的数量,遍历字符串s,如果字符为'L'('R'),则num++,否则num--


当num为0时,之前出现的'L'和'R'的数量必定相等,此时将记录子串数量的count++,遍历完后返回count即可

 

 

class Solution {
    public int balancedStringSplit(String s) {
        char a = s.charAt(0);        
        int count = 0;        
        int num = 1;        
        for(int i = 1; i < s.length(); i++) {            
            if(s.charAt(i) == a) {                
                num++;            
            }else {                
                num--;            
            }            
            if(num == 0) {                
                count++;            
                }        
             }        
                return count;

    }

}

 

 

代码带解析: 

class Solution {
    public String freqAlphabets(String s) {
        StringBuilder res = new StringBuilder();
        // 从后往前遍历
        for (int i = s.length() - 1; i >= 0; i--) {
            char chars = s.charAt(i);
            // 遇到 '#' 则取在该字符前 2 位的字符串来进行转换成字母操作
            if (chars == '#') {
                String cur = s.substring(i - 2, i);
                int num = Integer.parseInt(cur);
                char tmp = (char)(num + 'a' - 1);
                res.insert(0, tmp);
                i = i - 2;
            } else {
                // 如果是单个字符进行转换成字母的操作
                // 先将该字符转换成字符串形式
                String cur = chars + "";
                // 再转换成对应字符串内容的数字
                int num = Integer.parseInt(cur);
                // 最后转换成对应的字母
                char tmp = (char)(num + 'a' - 1);
                res.insert(0, tmp);
            }
        }
        return res.toString();

    }
}

代码: 

class Solution {
    public boolean judgeCircle(String moves) {
       char[] chars = moves.toCharArray();
        int col = 0;
        int row = 0;
        for (char x : chars) {
            if (x == 'U') {
                row++;
            } else if (x == 'D') {
                row--;
            } else if (x == 'L') {
                col++;
            } else {
                col--;
            }
        }
        return col == 0 && row == 0;


    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值