極致遊戲21屆校招遊戲開發筆試程式設計題

2021-10-25 09:13:20 字數 1664 閱讀 7497

昨天有幸參加了極致遊戲的筆試,題目分為了30道選擇題(60分)和2道程式設計題(40分),都只有一次進入作答的機會。兩道程式設計題趁還有映像趕緊記錄一下。

題目描述

輸入是一串全部由左括號和右括號組成且保證括號配對的字串。例如:"()(()()(()()))"

現有一些計算規則如下:

() 值為1

ab 值為a+b

(ab) 值為2*(a+b)

根據上述規則,樣例"()(()()(()()))"的結果為:

=1+2*(1+1+2*(1+1))

=1+2*(2+4)

=13請編寫程式,要求時間複雜度不大於o(n)。

輸入格式

輸入包含一行,一串平衡括號字串

輸出格式

輸出包含一行,乙個整數,根據規則計算出的該平衡括號字串的值。

解題思路

對於這種匹配括號的題用棧或遞迴來做就很適合。

**

#include

#include

using

namespace std;

intfunc

(string str,

int&idx)

else

return2*

func

(str,

++idx);}

else

if(str[idx]

==')'

)return0;

}int

main()

題目描述

現給出一串字串,例如"-1(3(2)(5))(4(6))",要求用該字串生成一棵二叉樹,並用中序遍歷輸出該二叉樹。

建立節點順序為先建立左子樹再建立右子樹,字串中,整數代表該節點的值,用括號括起來的代表是一棵子樹,樣例中生成的二叉樹為:

中序遍歷結果為2 3 5 -1 6 4。

樣例輸入

-1(3(2)(5))(4(6))

樣例輸出

2 3 5 -1 6 4

解題思路

做該題分為兩個步驟,先將字串反序列化為一棵二叉樹,然後用中序遍歷輸出該二叉樹,其中中序遍歷好說,而反序列化可像上題一樣用遞迴來做。

**

#include

#include

using

namespace std;

//-1(3(2)(5))(4(6))

struct treenode};

intgetval

(string str,

int&idx)

}return isz?val:

-val;

}treenode *

func

(string str,

int&idx)

} idx++

;//跳過該子樹右括號

return p;

}void

midprint

(treenode *head)

intmain()

網易互娛2020校招遊戲研發筆試題

第一題 判斷乙個數的二進位制是否為回文串 ac 方法一 存成陣列之後比較 include include include include using namespace std int t,x,cnt int num 111 int main int flag 1 for int i 0 i2 i ...

騰訊校招筆試題之紙牌遊戲

牛牛和羊羊正在玩乙個紙牌遊戲。這個遊戲一共有n張紙牌,第i張紙牌上寫著數字ai。牛牛和羊羊輪流抽牌,牛牛先抽,每次抽牌他們可以從紙牌堆中任意選擇一張抽出,直到紙牌被抽完。他們的得分等於他們抽到的紙牌數字總和。現在假設牛牛和羊羊都採用最優策略,請你計算出遊戲結束後牛牛得分減去羊羊得分等於多少。incl...

壓縮演算法 騰訊校招後台開發筆試題

時間限制 c c 2秒,其他語言4秒 空間限制 c c 256m,其他語言512m 小q想要給他的朋友傳送乙個神秘字串,但是他發現字串的過於長了,於是小q發明了一種壓縮演算法對字串中重複的部分進行了壓縮,對於字串中連續的m個相同字串s將會壓縮為 m s m為乙個整數且1 m 100 例如字串abca...