演算法訓練 字串統計
時間限制:1.0s 記憶體限制:512.0mb
問題描述
給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串(不同的出現可以相交),如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。
輸入格式
第一行乙個數字l。
第二行是字串s。
l大於0,且不超過s的長度。
輸出格式
一行,題目要求的字串。
輸入樣例1:
4bbaabbaaaaa
輸出樣例1:
bbaa
輸入樣例2:
2bbaabbaaaaa
輸出樣例2:
aa資料規模和約定
n<=60
s中所有字元都是小寫英文本母。
提示列舉所有可能的子串,統計出現次數,找出符合條件的那個
分析:一開始想用unordered_map統計所有子串出現次數,然而測評系統不支援unorder_map,於是將子串的內容、出現次數、出現順序用乙個結構體node儲存,改用map和vector來儲存。最後遍歷vector求出符合題目要求的子串。
**:
#include#include#include#include#includeusing namespace std;
struct node ;
bool cmp(node n1, node n2) else if (n1.s.size() == n2.s.size())
}int main() else
m[sub].times++;
m[sub].s = sub;
} }vectorv;
for (map::iterator it = m.begin(); it != m.end(); it++)
sort(v.begin(), v.end(), cmp);
string ans = "";
int maxn = -1;
for (vector::iterator it = v.begin(); it != v.end(); it++)
} cout << ans << endl;
return 0;
}
藍橋杯 演算法訓練 ALGO 87 字串統計
演算法訓練 字串統計 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串 不同的出現可以相交 如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。輸入格式 第一行乙個數字l。第二行是字串s。l大於0,且...
01字串 藍橋杯
對於長度為5位的乙個01串,每一位都可能是0或1,一共有32種可能。它們的前幾個是 00000 00001 00010 00011 00100 請按從小到大的順序輸出這32種01串。無輸出32行,按從小到大的順序每行乙個長度為5的01串。00000 00001 00010 00011 以下部分省略 ...
2 21 字串(藍橋杯)
問題描述 給出乙個包含n個整數的數列,問整數a在數列中的第一次出現是第幾個。輸入格式 第一行包含乙個整數n。第二行包含n個非負整數,為給定的數列,數列中的每個數都不大於10000。第三行包含乙個整數a,為待查詢的數。輸出格式 如果a在數列 現了,輸出它第一次出現的位置 位置從1開始編號 否則輸出 1...