POJ n gram串頻統計

2021-09-26 15:28:03 字數 1331 閱讀 4128

總時間限制:

1000ms

記憶體限制:

65536kb

描述

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

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

輸入第一行為n;

第二行為字串。

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

樣例輸入

3

abcdefabcd

樣例輸出

2

abcbcd

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

**元培-from whf

思路:在比較的過程中不斷把未出現的子串加入陣列,出現的子串頻次加一

#include

#include

#include

#include

#include

#include

using namespace std;

int str[30]

;char buf[30]

[80];

intmain()

index++

;//繼續匹配下乙個子串}if

(!flag)

}int maxindex =0;

int maxn =0;

queueres;

//儲存最大頻次的子串們(因為可能有多個)

//找到最大頻次索引

for(

int i =

0; i < length;

++i)

}int cnt =0;

res.

push

(sub[maxindex]);

for(

int i =

0; i < length;

++i)}}

if(num[maxindex]

>1)

}else

system

("pause");

return0;

}

n gram串頻統計

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

NOI 26 n gram串頻統計

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

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

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