新浪微博熱門話題 字串處理)

2021-10-02 13:25:05 字數 1308 閱讀 3147

本題目要求實現乙個簡化的熱門話題推薦功能,從大量英文(因為中文分詞處理比較麻煩)微博中解析出話題,找出被最多條微博提到的話題。

輸入格式:

輸入說明:輸入首先給出乙個正整數n(≤10^​5 ),隨後n行,每行給出一條英文微博,其長度不超過140個字元。任何包含在一對最近的#中的內容均被認為是乙個話題,輸入保證#成對出現。

輸出格式:

第一行輸出被最多條微博提到的話題,第二行輸出其被提到的微博條數。如果這樣的話題不唯一,則輸出按字母序最小的話題,並在第三行輸出and k more …,其中k是另外幾條熱門話題的條數。輸入保證至少存在一條話題。

注意:兩條話題被認為是相同的,如果在去掉所有非英文本母和數字的符號、並忽略大小寫區別後,它們是相同的字串;同時它們有完全相同的分詞。輸出時除首字母大寫外,只保留小寫英文本母和數字,並用乙個空格分隔原文中的單詞。

輸入樣例:

4

this is a #test of topic#.

another #test of topic.#

this is a #hot# #hot# topic

another #hot!# #hot# topic

輸出樣例:

hot

2and 1 more .

..

這一題有坑 比如hello hi與hello@hi是同乙個話題

思路:對於話題字串進行處理,所有的大寫字母都處理成小寫字母,數字字元不變,其他字元換成空格,注意有多個空格的話要換成乙個空格,首尾不能有空格,這需要注意。

另外,在同乙個微博裡面出現的相同話題,只能算一次,不能重複加,最開始我想著用標誌變數去寫,發現不行,可以用map去處理

**:

#include

using

namespace std;

mapint>p;

intmain()

if(t!="")

}}} string h;

int maxx=

0,k=0;

mapint>

::iterator it;

for(it=p.

begin()

;it!=p.

end(

);it++

)else

if(it-

>second==maxx) k++

;// coutcout0)

cout<<

"and "

<" more ..."

}

7 15 新浪微博熱門話題

大體思路是字串按行輸出 這裡注意getchar 每一行用set儲存話題 便於去重 然後把每一行出現的話題放入map集合中,因為map我不太會排序,轉化一下思路,遍歷map,將每乙個map對轉化成pair存入vector陣列,這樣就可以排序了,然後輸出就可以。不過肯定有寫細節需要注意了,比如在向集合裡...

新浪微博熱門話題 (30 分)

本題目要求實現乙個簡化的熱門話題推薦功能,從大量英文 因為中文分詞處理比較麻煩 微博中解析出話題,找出被最多條微博提到的話題。輸入說明 輸入首先給出乙個正整數n 10 5 隨後n行,每行給出一條英文微博,其長度不超過140個字元。任何包含在一對最近的 中的內容均被認為是乙個話題,輸入保證 成對出現。...

7 46 新浪微博熱門話題 30 分

這個30分不好拿呀,可以借鑑的知識點 map根據value排序,其實是用vector中的pair進行排序。首先題目讀錯了,忽略了還有數字,注意到這個問題以後,第三個測試點還是過不去。後來看了別人的部落格才發現,原來除了字母和數字的其他字元,要先替換成空格才行。每個話題在一行中只標記一次。別人的測試樣...