前几天收到了网易的邮件,告诉我通过了简历筛选,获得了在线笔试的资格~~~开森开森,嘿嘿,,传说中的网易只喜欢985的简历,我以为我肯定没机会参加笔试呢,,之后又听说去年网易有30000多人参加在线笔试,吓得我脑子里只想着“重在过程,重在体验”,嗯~
今天下午心情超级差,被班里的事情弄得心烦意乱,一团怒火心中烧, 不过也因此头脑特别清醒,做题状态还不错,脑子没有变呆滞。
20道选择题部分考点
- 计算机网络中的IP地址的子网掩码,子网个数
- 交换机在TCP/IP协议中属于哪层,它有什么作用
- 前缀表达式转换为后缀表达式
- 链表:往双向链表的两个节点中再插入一个节点
- java题考了好几个,例如Long类型的变量和11是不是相等,继承方面的知识,类定义后用其子类实例化,try中包含return是否还会执行finally等等
- 剩下的想不起来了…
3道编程题
我觉得三道题都是考对数组的操作,三道题的数据我分别通过20%, 70%, 90%,按通过率得分~ (最后一道题是暴力写的,居然过了90%,嘿嘿)
由于题目不支持粘贴,我就没记住题目了,大家可以通过我的代码猜猜看考得题目是什么~不过牛客网应该很快就会将题目放出来了吧
A.橡皮泥捏斑马
任意位置截断字符串后逆转一下,可以操作任意次,使得最大相间的wb子串最长,求最长的子串长度
输入 wwb 输出 3
输入 wbwbw 输出 5
//
// Created by jal on 18-9-8.
//
#include <bits/stdc++.h>
using namespace std;
int main(){
string s;
cin >> s;
int w = 0,b = 0;
for(auto c : s){
if(c == 'w'){
w++;
}
else{
b++;
}
}
int t = min(w,b)*2;
if(s.size() > t)t++;
cout <<t <<endl;
}
B.买房
n个房,k个房已经有人入住。
一个人想买一件空房,但又希望这个空房相邻两侧的房子都有人住,求符合要求的空房数的最小值和最大值。(最小数似乎总是为0,因为无论n k为多少,总有一种方案使这个人买不到合适的房子)
//
// Created by jal on 18-9-8.
//
#include <bits/stdc++.h>
using namespace std;
int main(){
int t;
cin >> t;
while(t--){
int n,k;
cin >> n >> k;
if(n <= 2){
cout << "0 0" << endl;
continue;
}
if(k == n){
cout << "0 0" << endl;
continue;
}
if(k == n-1){
cout << "0 1" << endl;
continue;
}
cout << "0 " << min(k-1, n-k) << endl;
}
}
C.社团主席选举
投票问题,购买别的选手的票来支持自己的选手,求最小花费
//
// Created by jal on 18-9-8.
//
#include <bits/stdc++.h>
using namespace std;
struct ZJ{
int x,y;
bool operator<( const ZJ that)const{
return y < that.y;
}
};
int get_k(int * a,int n){
int ret = 0;
for(int i = 2; i <= n; i++){
if(a[i] >= a[1]){
ret++;
}
}
return ret;
}
int main(){
int n,m;
cin >> n >> m;
ZJ a[n+1];
int c[m+1];
for(int i = 1; i <= m; i++){
c[i] = 0;
}
for(int i = 1; i <= n; i++) {
cin >> a[i].x >> a[i].y;
c[a[i].x]++;
}
long long t = 0;
while(get_k(c, m) > 0){
int temp =1;
int minn = 1e9+1;
for(int i = 2; i <= n; i++){
if(a[i].x == 1)continue;
if(a[i].y < minn){
minn = a[i].y;
temp = i;
}
}
c[1]++;
c[a[temp].x]--;
t += a[temp].y;
a[temp].x = 1;
}
cout << t << endl;
}
两道问答题
继承和实现的区别
我的回答:
1.继承是指类的继承,用extends关键字,继承是唯一的,只能继承一个类。类A通过继承另一个类B,可以得到类B的所有public方法和属性,如果类B是抽象类,那类A需要实现类B的所有抽象方法,如果没有全部实现,那类A要将自己变成抽象类,加关键字abstract。此外,类A的构造函数中需要先显示调用类B的构造函数。如果类A中继承了类B的方法和属性,而类A本身也拥有与其同名的方法和属性,那么类A将用自己的方法和属性覆盖类B中的方法和属性。
2.实现是指实现接口的方法,用implements关键字,接口可以有多个,想要实现多个接口,可以用逗号隔开。类A如果通过implements关键字来实现接口B,那类A必须实现所有接口B中的抽象方法,如果没有全部实现,那类A要将自己变成抽象类,加关键字abstract集合类为什么没有实现cloneable和serialization接口
我的回答:
clone是实现类的拷贝,serialization是实现类的序列化。
cloneable和serialization接口中没有抽象方法,所以集合类不需要实现这两个接口。这两个接口的存在,只是为了告诉程序员继承了这两个接口的类,可以具有拷贝和序列化的功能,而不是需要来实现它,只是起标示作用。