NOI 1 13 26 n gram串頻統計 題解

2021-10-04 16:07:32 字數 1109 閱讀 4925

26:n-gram串頻統計

總時間限制: 1000ms 記憶體限制: 65536kb

描述

在文字分析中常用到n-gram串頻統計方法,即,統計相鄰的n個單元(如單詞、漢字、或者字元)在整個文字**現的頻率。假設有乙個字串,請以字元為單位,按n-gram方法統計每個長度為 n 的子串出現的頻度,並輸出最高頻度以及頻度最高的子串。所給的字串只包含大小寫字母,長度不多於500個字元,且 1 < n < 5。

如果有多個子串頻度最高,則根據其在序列中第一次出現的次序依次輸出,每行輸出乙個,如果最高頻度不大於1,則輸出no。

輸入

第一行為n;

第二行為字串。

輸出

輸出最高頻度以及頻度最高的所有子串。若最高頻度不大於1,只輸出一行no。

樣例輸入

3abcdefabcd

樣例輸出

2abc

bcd提示

樣例中,所有的3-gram是:abc,bcd,cde,def,efa,fab,abc,bcd。最後面的cd不足以形成3-gram,則不考慮。這樣,abc 和 bcd 都出現了2次,其餘的只出現了1次。

思路也不難,仗著電腦執行速度快,資料範圍小,用o(n2)的動作毫不為過。找到乙個子串就逐一比對,統計個數。如果熟練使用map,還可以降成o(n log(n))。

#include

using

namespace std;

int n,j,i,f[

1005

],maxx,len,z,d;

string s,x[

1005

],y;

intmain()

}if(f[z]

>maxx)}if

(maxx>1)

}}else

return0;

}

------------------------------------------- end.-------------------------------------------

NOI 26 n gram串頻統計

26 n gram串頻統計 總時間限制 1000ms 記憶體限制 65536kb 描述 在文字分析中常用到n gram串頻統計方法,即,統計相鄰的n個單元 如單詞 漢字 或者字元 在整個文字中出現的頻率。假設有乙個字串,請以字元為單位,按n gram方法統計每個長度為 n 的子串出現的頻度,並輸出最...

n gram串頻統計

描述 在文字分析中常用到n gram串頻統計方法,即,統計相鄰的n個單元 如單詞 漢字 或者字元 在整個文字 現的頻率。假設有乙個字串,請以字元為單位,按n gram方法統計每個長度為 n 的子串出現的頻度,並輸出最高頻度以及頻度最高的子串。所給的字串只包含大小寫字母,長度不多於500個字元,且 1...

NGram近似字串匹配

介紹ngram是來自給定序列的n個單位的子串行。這些單位可以是單詞,字元等。例如,短語 hello world 的2 gram或bigram是 he el ll lo o w wo or rl 和 ld 用途ngram建模通常用於對自然語言進行建模。它還可用於 序列中的下乙個專案。ie,給定具有發生...