2019 9 17 深信服C 開發崗程式設計題

2021-09-27 04:32:34 字數 3559 閱讀 4178

有根管子,有100公尺長。把n只小白鼠放上去,不會有同一位置。它們有初始位置和朝向,每秒走1格,碰到別人就都調頭,直到離開管子。其中有某些白鼠患病,患病的碰到別人的話,大家就一起都患病。問,所有小白鼠都離開管子後,還剩幾隻可用(未患病)。

第一行輸入乙個整數n (1 < n < 50 ),表示小白鼠的總數。

接著的一行是n個用空格分開的整數xi (-100 < xi < 100),xi的絕對值表示小白鼠離左端點距離,正值表示朝右,負值表示朝左,資料中不會出現0值。輸入的第一只小白鼠患病,剩餘正常。

要求輸出1個整數,表示最後可用小白鼠的數目。

輸入1:

35 -2 8

輸出1:

2輸入2:

5-10 8 -20 12 25

輸出2:

2

用陣列來模擬咯,反正不很大。

#include 

#include

using namespace std;

struct xiaobaishu

shu[60]

;int out;

int main()

shu[1]

.bing =1;

int dp[

110]

; int map

[110];

while

(outelse}}

else}}

for(int i=

1;i<

100;i++)}

}}int cnt =0;

for(int i=

1;i<=n;i++)if

(shu[i]

.bing ==0)

cnt++

;printf

("%d\n"

,cnt)

;return0;

}

暴力,過是過了。

判斷所給的字串是否由所給的詞典中的若干個詞組成。

如已知詞典[「code」, 「sangfor」, 「org」]

則字串"codesangfororg"由上述詞典組成。

字串"codesangforsangfororg"也由上述詞典組成。

但字串"sangforcom"則不由上述詞典組成。

第一行乙個數字k 表示詞典個數

後面若干行則為具體的輸入詞典,乙個詞典一行

最後一行輸入待判定的字串

若字串為對應的詞典組成,則輸出yes,否則輸出no

輸入:

3code

sangfor

orgcodesangfororg

輸出:yes

不說那麼多。結果只有兩種,yes和no。真要做的話,是個ac自動機加動態規劃,難的1匹。

#include 

using namespace std;

int main()

yes能過40%,no能過60%。

設計實現乙個lru(least recently used)快取器

lru有如下兩個方法:

int get(int key) - 從快取中取值,返回key對應的value(值總是乙個正數),如不存在返回-1。

void set(int key, int value) - 往快取中存鍵值對。當快取達到容量限制時,令「最近最少使用」的鍵值對失效。

根據輸入內容操作該lru快取器,輸出lru快取器每個get的結果。

例如:快取器容量為3;

set(1, 2)

set(2, 3)

set(3, 4)

get(1) 返回2

get(4) 返回-1

set(4, 5)

get(2) 返回-1

第一行輸入兩個數n l (n>0, l>0),n為快取器容量,l為接下來輸入的行數

接下來輸入l行

(1)對應get操作,輸入格式為 「g %d」;

(2)對應set操作,輸入格式為 「s %d %d」 ,前乙個數為key,後乙個為value。

輸出每次get操作的返回值,一次一行。

輸入:

3 7s 1 2

s 2 3

s 3 4

g 1g 4

s 4 5

g 2輸出:2-1

-1

這沒啥好方法,就暴力唄。開個向量,來乙個往後面塞乙個,超了的話就把頭刪了。用標記陣列來對映就好。

#include 

#include

#include

#include

#include

#define ll long long

using namespace std;

int n,m;

vector<

ll>

rom;

ll mp[

10000010];

void

tiqian

(ll a)

}rom

.push_back

(a);

}int main()

else

/* for(vector::iterator it=rom.begin();it!=rom.end();it++)

cout<< *it <<" ";

cout<}

}else

if(c[0]

=='g'

||c[0]

=='g'

)else

cout<<

"-1"

<}

a了,但是這題有坑,說好的都是正數,其實有0,就是要求插入鍵值對中有0。一開始我用map寫的,因為快,而且可以鍵值很大,但是map的初始化都是0,沒法實現插入鍵值是0的東西,就只過了70%,真的坑得要死。而且記憶體給的並不是很夠,我開標記陣列只能開到100萬,500萬都開不了,其實我擔心這個maxnum不夠大的。

#include 

#include

#include

#include

#define ll long long

using namespace std;

int n,m;

vector<

ll>

rom;

mapll> mp;

void

tiqian

(ll a)

}rom

.push_back

(a);

}int main()

else

/* for(vector::iterator it=rom.begin();it!=rom.end();it++)

cout<< *it <<" ";

cout<}

}else

if(c[0]

=='g'

||c[0]

=='g'

)else

cout<<

"-1"

<}

深信服C 開發崗筆試記錄

資料庫 c c html os 計網面試準備 更新中 筆試共有三部分 不定項選擇 8道 填空 7道 程式設計 3道 選擇和填空的部分內容涉及較廣,計算機知識和數學計算知識都有,不詳細記錄,要注意填空的概率問題較多 程式設計題共三道 1.由n個容器分層疊放,編號從上到下為1到n,每個容器的容量為x,如...

深信服C 後端開發涼經

03.09 二面看起來像leader的面試官很嚴肅,而且也不問我c 相關問題 我面完二面也就涼了 一面 約20min 自我介紹 1.c語言是如何編譯成可執行檔案的 2.說說巨集定義與內聯 3.平時寫程式過程中遇到過哪些錯誤 4.說說記憶體洩漏與野指標 5.malloc與new的區別 6.說說fork...

深信服c 面試總結

面試官 說說你最熟悉的幾個方面 回答 c qt 網路程式設計 面試官 好,介紹一下你的專案,巴拉巴拉 沒有自我介紹,開始進入主題 問題1 說說http協議有哪些常見狀態碼,403代表什麼意思?回答 200,404,403,400等,403表示資源不可用。伺服器收到了客戶的請求,但拒絕處理它。主要由於...