描述:
實現乙個開放的書名檢索庫,庫中儲存了若干個書名
使用者可以:
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,可以使得個人對程序的概念 程序的通訊和作業系統的執行的理解更加的深刻。還會大大增加個人學習的成就感,提供學習興趣。這乙個文章 被命...
創業大賽 乙個美好的經歷(二)
其實做了兩屆創業大賽都只是拿到了省級獎勵,總覺得欠缺點什麼。是實力還是智力?這個其實很難說。但是有一點是肯定的,我們欠缺的是閱歷。那閱歷從何而來?來自與你的老師 做創業大賽,指導老師是很重要的一點,乙個好的老師會給你很多好的指導,無論是在業務方面還是人生方面都會有很大的幫助。可是 我們卻在創業大賽中...