整體**是參考這位博主的(再次感謝這位博主,已經參考過他的好幾篇**了,再次推薦一下)
但是在處理熱門話題的時候 注意要將非字母和非數字的字元轉化成空格
然後注意處理之後 話題的前面和末尾 可能還有空格
然後 兩個分詞之間只能有乙個空格
map和set還有string太香了!
#include
#include
#include
#include
#include
#include
#include
using
namespace std;
const
int maxnum =
1e5+5;
int n;
//保證乙個句子的熱門話題
struct topic
topics[maxnum]
;set cur_sentence_hot_topic;
set all_hot_topic;
map int> mp;
bool
cmp(topic a, topic b)
void
handle
(string sentence)
//再次處理,應該是用來處理 空格的問題
string res;
bool flag =
false
;for
(int j =
0; j < handle_str.
size()
; j++
)else
if(handle_str[j]
==' ')}
}//cout << '[' << handle_str << ']' << endl;
//cout << '' << endl;
cur_sentence_hot_topic.
insert
(res)
;//更新i讀取的位置
i = ed +1;
}//if
}//for
for(set
::iterator it = cur_sentence_hot_topic.
begin()
; it != cur_sentence_hot_topic.
end(
); it++)}
void
input()
}void
solve()
sort
(topics, topics + i, cmp)
; string ans1 = topics[0]
.name;
int ans2 = topics[0]
.cnt;
int ans3 =0;
for(
int j =
1; j < i; j++
)//ans1
cout <<
(char
)toupper
(topics[0]
.name[0]
);for(
int i =
1; i < ans1.
size()
; i++
) cout << topics[0]
.name[i]
; cout << endl;
//ans2
cout << ans2 << endl;
//ans3
if(ans3)
printf
("and %d more ...\n"
, ans3);}
intmain()
奧運排行榜(25 分)
這個題目需要注意的乙個地方就是,如果你想排序 那麼查詢就做到o 1 如果查詢用o n 那就不用排序,自己可以選擇下,做到查詢是o 1 比較麻煩需要各種對映才可以做到 每年奧運會各大 都會公布乙個排行榜,但是細心的讀者發現,不同國家的排行榜略有不同。比如中國金牌總數列第一的時候,中國 就公布 金牌榜 ...
7 53 奧運排行榜 (25 分
題目鏈結 每年奧運會各大 都會公布乙個排行榜,但是細心的讀者發現,不同國家的排行榜略有不同。比如中國金牌總數列第一的時候,中國 就公布 金牌榜 而美國的獎牌總數第一,於是美國 就公布 獎牌榜 如果人口少的國家公布乙個 國民人均獎牌榜 說不定非洲的國家會成為榜魁 現在就請你寫乙個程式,對每個前來諮詢的...
1 奧運排行榜 25分
每年奧運會各大 都會公布乙個排行榜,但是細心的讀者發現,不同國家的排行榜略有不同。比如中國金牌總數列第一的時候,中國 就公布 金牌榜 而美國的獎牌總數第一,於是美國 就公布 獎牌榜 如果人口少的國家公布乙個 國民人均獎牌榜 說不定非洲的國家會成為榜魁 現在就請你寫乙個程式,對每個前來諮詢的國家按照對...