編程:
用C語言實現一個revert函數,它的功能是將輸入的字符串在原串上倒序后返回。
2 編程:
用C語言實現函數void memmove(void dest,const void src,size_t n)。memmove函數的功能是拷貝src所指的內存內容前n個字節到dest所指的地址上。
3 英文拼寫糾錯:
在用戶輸入英文單詞時,經常發生錯誤,我們需要對其進行糾錯。假設已經有一個包含了正確英文單詞的詞典,請你設計一個拼寫糾錯的程序。
(1)請描述你解決這個問題的思路;
(2)請給出主要的處理流程,算法,以及算法的復雜度;
(3)請描述可能的改進(改進的方向如效果,性能等等,這是一個開放問題)。
4 尋找熱門查詢:
搜索引擎會通過日志文件把用戶每次檢索使用的所有檢索串都記錄下來,每個查詢串的長度為1-255字節。假設目前有一千萬個記錄,這些查詢串的重復度比較高,雖然總數是1千萬,但如果除去重復后,不超過3百萬個。一個查詢串的重復度越高,說明查詢它的用戶越多,也就是越熱門。請你統計最熱門的10個查詢串,要求使用的內存不能超過1G。
(1)請描述你解決這個問題的思路;
(2)請給出主要的處理流程,算法,以及算法的復雜度。
5 集合合并:
給定一個字符串的集合,格式如:{aaa bbb ccc}, {bbb ddd},{eee fff},{ggg},{ddd hhh} 要求將其中交集不為空的集合合并,要求合并完成后的集合之間無交集,例如上例應輸出 {aaa bbb ccc ddd hhh},{eee fff}, {ggg}
(1)請描述你解決這個問題的思路;
(2)請給出主要的處理流程,算法,以及算法的復雜度
(3)請描述可能的改進(改進的方向如效果,性能等等,這是一個開放問題)。
1 題
char revert(char str)
{
int n=strlen(str);
int i=0;
char c;
for(i=0;i {
c=str;
str=str[n-i];
str[n-i]=c;
}
return str;
}
2 題
void memmove(void dest,const void src,size_t n)
{
assert((dest!=0)&&(src!=0));
char temp=(char )dest;
char ss=(char )src;
int i=0;
for(;i {
temp =ss ;
}
return temp;
}
3 題
(1)思路: 字典以字母鍵樹組織,在用戶輸入同時匹配
(2) 流程:
每輸入一個字母:
沿字典樹向下一層,
a)若可以順利下行,則繼續至結束,給出結果;
b)若該處不能匹配,糾錯處理,給出拼寫建議,繼續至a);
算法:
1.在字典中查找單詞
字典采用27叉樹組織,每個節點對應一個字母,查找就是一個字母
一個字母匹配.算法時間就是單詞的長度k.
2.糾錯算法
情況:當輸入的最后一個字母不能匹配時就提示出錯,簡化出錯處理,動態提示可能 處理方法:
(a)當前字母前缺少了一個字母:搜索樹上兩層到當前的匹配作為建議;
(b)當前字母拼寫錯誤:當前字母的鍵盤相鄰作為提示;(只是簡單的描述,可 以有更多的)
根據分析字典特征和用戶單詞已輸入部分選擇(a),(b)處理
復雜性分析:影響算法的效率主要是字典的實現與糾錯處理
(a)字典的實現已有成熟的算法,改進不大,也不會成為瓶頸;
(b)糾錯策略要簡單有效 ,如前述情況,是線性復雜度;
常見的hr面試官面試問題大全
時間:2023-09-14 23:0:24企業面試官面試的問題有哪些
時間:2023-09-15 17:0:48企業面試官面試問題及參考
時間:2023-09-17 08:0:27高校教師招聘面試答辯100題
時間:2023-09-17 06:0:03