前幾天收到了網易的郵件,告訴我通過了履歷篩選,獲得了線上筆試的資格~~~開森開森,嘿嘿,,傳說中的網易隻喜歡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 = ,b = ;
for(auto c : s){
if(c == 'w'){
w++;
}
else{
b++;
}
}
int t = min(w,b)*;
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 <= ){
cout << "0 0" << endl;
continue;
}
if(k == n){
cout << "0 0" << endl;
continue;
}
if(k == n-){
cout << "0 1" << endl;
continue;
}
cout << "0 " << min(k-, 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 = ;
for(int i = ; i <= n; i++){
if(a[i] >= a[]){
ret++;
}
}
return ret;
}
int main(){
int n,m;
cin >> n >> m;
ZJ a[n+];
int c[m+];
for(int i = ; i <= m; i++){
c[i] = ;
}
for(int i = ; i <= n; i++) {
cin >> a[i].x >> a[i].y;
c[a[i].x]++;
}
long long t = ;
while(get_k(c, m) > ){
int temp =;
int minn = +;
for(int i = ; i <= n; i++){
if(a[i].x == )continue;
if(a[i].y < minn){
minn = a[i].y;
temp = i;
}
}
c[]++;
c[a[temp].x]--;
t += a[temp].y;
a[temp].x = ;
}
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接口中沒有抽象方法,是以集合類不需要實作這兩個接口。這兩個接口的存在,隻是為了告訴程式員繼承了這兩個接口的類,可以具有拷貝和序列化的功能,而不是需要來實作它,隻是起标示作用。