2018網易遊戲雷火盤古實習生招聘筆試真題

2021-07-27 23:51:52 字數 3653 閱讀 2844

1.字串編碼

輸入描述:

每個測試輸入包含1個測試用例

每個測試用例輸入只有一行字串,字串只包括大寫英文本母,長度不超過10000。

輸出描述:

輸出編碼後的字串

輸入例子:

aaaabccdaa

輸出例子:

4a1b2c1d2a

思路分析:這道題好像以前是一家企業的面試題,leetcode easy級別,思路弄清楚,10分鐘ac。

#include #include #include using namespace std;

string num = "0123456789";

string inttostring( int n )

return str;

}string solve( string str )

else if( str[j] != cur )

}if( j == len )

}return ans;

}int main()

return 0;

}

2.最大和

輸入描述:

每個測試輸入包含1個測試用例,第一行包括兩個整數 n 和 d :

3 <= n <= 100

1 <= d <= n

接下來有n行,每行n個數字d:

0 <= d <= 100

輸出描述:

輸出乙個整數,表示找到的和的最大值

輸入例子:

4 2

87 98 79 61

10 27 95 70

20 64 73 29

71 65 15 0

輸出例子:

193

思路分析:這道題資料量比較小,只有100,所以暴力列舉即可(注意要搞清楚邏輯再寫,寫40多分鐘都有可能的)。另外可以用dp的想法,維護字首和。

#include #define max 100 + 10

int max = 0;

bool check1( int x, int y, int d, int n )

bool check2( int x, int y, int d, int n )

int main()

}// 先從每行開始找

for( int row = 1; row <= n; row++ )

if( sum > max ) max = sum;

//printf( "%d\n", sum );}}

// 再從每列開始找

for( int col = 1; col <= n; col++ )

if( sum > max ) max = sum;

//printf( "%d\n", sum );}}

// 再從左上到右下對角線開始找

for( int i = 1; i <= n; i++ )

//printf( "%d\n", sum );

if( sum > max ) max = sum;}}

}// 再從右上到左下對角線開始找

for( int i = 1; i <= n; i++ )

if( sum > max ) max = sum;

//printf( "%d\n", sum );}}

}printf( "%d\n", max );

}return 0;

}

3.推箱子

大家一定玩過「推箱子」這個經典的遊戲。具體規則就是在乙個n*m的地圖上,有1個玩家、1個箱子、1個目的地以及若干障礙,其餘是空地。玩家可以往上下左右4個方向移動,但是不能移動出地圖或者移動到障礙裡去。如果往這個方向移動推到了箱子,箱子也會按這個方向移動一格,當然,箱子也不能被推出地圖或推到障礙裡。當箱子被推到目的地以後,遊戲目標達成。現在告訴你遊戲開始是初始的地圖布局,請你求出玩家最少需要移動多少步才能夠將遊戲目標達成。 

輸入描述:

每個測試輸入包含1個測試用例

第一行輸入兩個數字n,m表示地圖的大小。其中0輸出描述:

輸出乙個數字表示玩家最少需要移動多少步才能將遊戲目標達成。當無論如何達成不了的時候,輸出-1。

輸入例子:

4 4

....

..*@

....

.x..

6 6...#..

......

#*##..

..##.#

..x...

.@#...

輸出例子:

3

11

思路分析:考查搜尋。但是我當時沒寫出來,這道題只過了3個測試點。說一下別人的思路:

1.dfs,不知道他怎麼寫的,判斷條件應該比較複雜吧。

2.bfs,四維bfs,增加兩個維度代表箱子的位置(我當時考試只想到三維了,沒想到四維,豁然開朗。。下去再練練)

去年有一道也是推箱子,不過那個是純模擬,簡單一點。有興趣的可以在hihocoder上看一下。

(**暫時沒有)

4.賽馬

在一條無限長的跑道上,有n匹馬在不同的位置上出發開始賽馬。當開始賽馬比賽後,所有的馬開始以自己的速度一直勻速前進。每匹馬的速度都不一樣,且全部是同樣的均勻隨機分布。在比賽中當某匹馬追上了前面的某匹馬時,被追上的馬就出局。 請問按以上的規則比賽無限長的時間後,賽道上剩餘的馬匹數量的數學期望是多少 

輸入描述:

每個測試輸入包含1個測試用例

輸入只有一行,乙個正整數n

1 <= n <= 1000

輸出描述:

輸出乙個浮點數,精確到小數點後四位數字,表示剩餘馬匹數量的數學期望

輸入例子:

1

2

輸出例子:

1.0000

1.5000

思路分析:題目看上去有點費解,個人更感覺像是一道智力題。我們假設有n匹馬賽跑,最後剩下的那個是冠軍。注意題目中說每個馬的速度不一樣,這就說明最後只會剩下乙個馬,不可能出現並列的情況。另外數學期望的意思就是如果這匹馬的編號是i,那p(i)表示i是冠軍的概率,就是數學期望。可以這樣想一下:如果只有一匹馬,那麼這匹馬肯定是冠軍,數學期望顯然是1。如果有兩匹馬,那麼某一匹馬是冠軍的概率是0.5,某一時刻其中乙個馬被淘汰了,那麼另乙個馬的數學期望變成1,相加就是1.5。依次類推,如果剛開始有n匹馬,p(i) = 1 / n,某一時刻p(i) = 1 / (n - 1)、1/(n - 2)......所以這道題的答案就是計算1 + 1  /  2 + 1 / 3 + 1 / 4 + ... + 1 / n的和,就是調和級數。

另外見群裡有acm大神說根據某某定理,先打個表,然後高精度運算得出結果,沒聽懂他的做法。我感覺調和級數這個還是好理解的。

#include int main() 

printf( "%.4lf\n", sum );

}return 0;

}

2017網易遊戲雷火盤古實習生招聘筆試真題

1.給定乙個字串,請你將字串重新編碼,將連續的字元替換成 連續出現的個數 字元 比如字串aaaabccdaa會被編碼成4a1b2c1d2a。include include char s 10004 int main tem s i cot 1 else cot printf d c cot,tem ...

2017網易遊戲雷火盤古實習生招聘筆試真題 推箱子

2018.3.19 此題我用了廣度優先搜尋 bfs 的方法.廣度優先搜尋不僅僅可以使用在圖的遍歷中,而且可以用於求解複雜問題的最優解。本題就是利用bfs的經典題目,首先來分析這個問題 查詢空間 所有 0,0,0 到點 a 1,b 1,c 1 合法的行走路徑 查詢目標 找到通往出口的最短路徑 查詢方法...

2017網易雷火盤古實習生招聘試題 硬幣反轉

今天聽說cao參加了網易雷火盤古的招聘,做了幾道程式設計題。據他本人的描述,第一道題是這樣的 第一行輸入兩個數字n和m,表示現在有n個硬幣,需要反轉m次。初始所有硬幣都預設為正面,用0表示,反面則用1表示。求經過一系列操作之後的硬幣正反排列。根據cao本人的說法,輸入輸出樣例是這樣的 感覺比較簡單....