筆試練習 去哪兒筆試題

2021-07-26 12:21:45 字數 1713 閱讀 2233

1、二分查詢

對於乙個有序陣列,我們通常採用二分查詢的方式來定位某一元素,請編寫二分查詢的演算法,在陣列中查詢指定元素。

給定乙個整數陣列a及它的大小n,同時給定要查詢的元素val,請返回它在陣列中的位置(從0開始),若不存在該元素,返回-1。若該元素出現多次,請返回第一次出現的位置。

測試樣例:

[1,3,5,7,9],5,3

返回:1

class binarysearch 

else

if(a[mid-1] == val)

}else

if(a[mid] > val)

right = mid-1;

else

left = mid+1;

}return -1;

}};

2、第乙個重複出現的字元

對於乙個字串,請設計乙個高效演算法,找到第一次重複出現的字元。

給定乙個字串(不一定全為字母)a及它的長度n。請返回第乙個重複出現的字元。保證字串中有重複字元,字串的長度小於等於500。

測試樣例:

「qywyer23tdd」,11

返回:y

這道題目一開始並沒有讀懂題目的意思,我以為是遍歷完所有的字元之後找出第乙個重複出現的字元,其實並不是這樣的,而是遍歷到某乙個字元,只要這個字元是重複出現的,就返回當前字元,不管前邊的字元是否在後邊已經出現過了。

class firstrepeat ;

for(int i = 0; i < a.size(); ++i)

return

'\0';

}};

3、查詢coder

請設計乙個高效演算法,再給定的字串陣列中,找到包含」coder」的字串(不區分大小寫),並將其作為乙個新的陣列返回。結果字串的順序按照」coder」出現的次數遞減排列,若兩個串中」coder」出現的次數相同,則保持他們在原陣列中的位置關係。

給定乙個字串陣列a和它的大小n,請返回結果陣列。保證原陣列大小小於等於300,其中每個串的長度小於等於200。同時保證一定存在包含coder的字串。

測試樣例:

[「i am a coder」,」coder coder」,」code」],3

返回:[「coder coder」,」i am a coder」]

本題的重點在於求字串中含有子串的個數,然後根據子串個數進行穩定性排序(這裡可以使用歸併排序,也可以使用庫函式stable_sort()函式進行排序)。

bool compare(const pair& l, const pair& r) 

class coder

int count(const

string& s)

else

break;

}return count;

}public:

vector

findcoder(vector

a, int n)

stable_sort(v.begin(), v.end(),compare);

vector

ret;

for (int i = 0; i < v.size(); ++i)

return ret;

}};

筆試練習 去哪兒筆試題

1 二分查詢 對於乙個有序陣列,我們通常採用二分查詢的方式來定位某一元素,請編寫二分查詢的演算法,在陣列中查詢指定元素。給定乙個整數陣列a及它的大小n,同時給定要查詢的元素val,請返回它在陣列中的位置 從0開始 若不存在該元素,返回 1。若該元素出現多次,請返回第一次出現的位置。測試樣例 1,3,...

去哪兒筆試

雖然讀了這麼多年的書,但是這應該算是第一較為正式的筆試。去哪兒2015春招的筆試題應該來說很簡單,總共才7個題。開發的1 2 3,web端的1 2 4 5,測試的1 2 6 7。第一道題是一在有序陣列的乙個查詢,實現indexof函式的功能。例如,類似有這麼乙個陣列,1,2,3,4,5,6,7,8,...

去哪兒網筆試題分析

目錄 輸入n個int數,0,n 2 表示n 1個酒店的每晚 第 n 1 個元素是你擁有的錢。要求輸出,能住最少的天數,且錢必須剛好花完。若不存在匹配情況,則返回 1.輸入描述 輸入為一行。共n個整數,最後乙個數是擁有的錢數。以空格分隔。輸出描述 輸出能住的最小天數,不存在則輸出 1。輸入例子 100...