華為程式設計大賽 實現乙個開放的書名檢索庫

2021-06-21 22:46:15 字數 2853 閱讀 9734

描述:

實現乙個開放的書名檢索庫,庫中儲存了若干個書名

使用者可以:

1. 通過介面加入書名

2. 指定搜尋條件搜尋庫中符合條件的書名

重要格式說明

單詞:由小寫英文本母組成,不含其它字元

書名:1. 由乙個或多個單詞組成

2. 當包含多個單詞時,單詞間用乙個空格分隔

3. 第乙個單詞前和最後乙個單詞後沒有空格

4. 若只包含乙個單詞,則該單詞前後均無空格

搜尋條件:

1. 由乙個或多個不重複的關鍵字組成,每個關鍵字是乙個單詞。

2. 當包含多個關鍵字時,關鍵字間用乙個空格分隔;第乙個關鍵字前和最後乙個關鍵字後沒

有空格3. 若只包含乙個關鍵字,則該關鍵字前後均無空格

4. 搜尋包含指定關鍵字的書名,輸出不需要排序(不影響自動閱卷)

5. 若搜尋條件包含多個關鍵字,它們之間是「與」的關係,即書名中要同時包含所有指定的關

鍵字(但不限制關鍵字在書名中出現的位置和順序)

6. 必須是「全詞匹配」,即書名中的單詞和關鍵字完全一致,例如:關鍵字為man,書名中包

括單詞woman,則不認為該書名符合搜尋要求

輸出說明:

1. 如果沒有查詢到書名,那麼輸出一對雙引號: 「」

2. 如果存在多行輸出(查詢到多本書名),那麼輸出結果按字典序排序

舉例輸入:

addbooks

「high performance mysqlsecond edition」

「writing gnu emacs extensions」

「web client programming with perlautomating tasks」

「photoreading」

「pro wfwindows workflow in net」

searchbooks

「extensions gnu」

end輸出:

「writing gnu emacs extensions」

輸入:addbooks

「high performance mysqlsecond edition」

「writing gnu emac***tensions」

「web client programming with perlautomating tasks」

「photoreading」

「pro wfwindows workflow in net」

searchbooks

end輸出:

規格0<=書名個數範圍<=200

1<=書名所含單詞個數<=10

1<=單詞所含字母數<=50

1<=搜尋條件中關鍵字個數<=3

輸入:addbooks

[書名列表:每行乙個書名,書名在雙引號中]

searchbooks

[關鍵字:多個關鍵字用空格分隔,關鍵字在雙引號中]

end輸出:

1. 查詢到的書名,查詢到多個書名,以多行顯示,書名在雙引號內

2. 如果沒有查詢到書名,那麼輸出: 「」

3. 如果存在多行輸出(查詢到多本書名),那麼輸出結果按字典序排序

如下:字母a在字典序中排在字母n前面,所以顯示的時候 「aspect oriented analysis and design

如果乙個字元相等,那麼順序比較後面的字元,直到找到乙個字元不相等為止

樣例輸入:

addbooks

「high performance mysqlsecond edition」

「writing gnu emacs extensions」

「web client programming with perlautomating tasks」

「photoreading」

「pro wfwindows workflow in net」

searchbooks

「extensions gnu」

end樣例輸出:

「writing gnu emacs extensions」

說明,此**沒有提交到oj驗證。

#include #include #include #include #include #include #include #include #include #include #include using namespace std;

vectorbooks;

vectorsearch_list;

int integer_partition(int m,int n)//整數劃分

if (n >= m)

return integer_partition(m-n,n)+integer_partition(m,n-1);

}bool comp(string a, string b)

for (int i = 0; i < num_keys; i++)

book_map[key_list[i]]--;

}return true;

}vectorfind_books(string key)

{ vectorret;

ret.clear();

vectorkey_list;

int matched = 0;

istringstream iss(key);

string key_word;

while(iss>>key_word)

{key_list.push_back(key_word);

//coutret.clear();

ret = find_books(search_list[i]);

if (ret.size() == 0)

{cout<<"\"\""<

程式設計就是乙個思維的實現(09 03 29)

在網上看到這樣一段話 思想是程式設計的靈魂。確實是這樣。其實給我更多的感覺是,編寫程式其實就是思想的實現。就像是作家寫作一樣,把自己的思想化成文字,發布出去。作為乙個學習程式設計的人員,不應該只是想到那個函式有什麼功能,這個語句這麼用。而更多的應該想這段程式的主要思想是什麼?這樣的思想是怎樣通過一行...

自己動手程式設計實現乙個shell

這是本部落格的第乙個文章 主要介紹如何用 c 語言基於linux系統來實現乙個簡單shell,diy 乙個shell。通過自己程式設計實現乙個linux下的 shell,可以使得個人對程序的概念 程序的通訊和作業系統的執行的理解更加的深刻。還會大大增加個人學習的成就感,提供學習興趣。這乙個文章 被命...

創業大賽 乙個美好的經歷(二)

其實做了兩屆創業大賽都只是拿到了省級獎勵,總覺得欠缺點什麼。是實力還是智力?這個其實很難說。但是有一點是肯定的,我們欠缺的是閱歷。那閱歷從何而來?來自與你的老師 做創業大賽,指導老師是很重要的一點,乙個好的老師會給你很多好的指導,無論是在業務方面還是人生方面都會有很大的幫助。可是 我們卻在創業大賽中...