演算法訓練 字串統計
時間限制:1.0s 記憶體限制:512.0mb
問題描述
給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串(不同的出現可以相交),如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。
輸入格式
第一行乙個數字l。
第二行是字串s。
l大於0,且不超過s的長度。
輸出格式
一行,題目要求的字串。
輸入樣例1:
4bbaabbaaaaa
輸出樣例1:
bbaa
輸入樣例2:
2bbaabbaaaaa
輸出樣例2:
aa資料規模和約定
n<=60
s中所有字元都是小寫英文本母。
提示列舉所有可能的子串,統計出現次數,找出符合條件的那個
思路:按照提示的那樣列舉所有可能的子串
len=strlen(s);
子串長度範圍l~(len-1);
定義乙個用來儲存答案陣列ans來儲存最優答案
定義兩個用來臨時儲存子串的陣列mid_s,mid_e,第乙個用來某一子串,第二個用來儲存其他子串(包括第乙個子串);
每列舉乙個子串一,就跟子串二(子串一長度l時所有子串可能)相比較,如果相等出現次數mid_cnt++;每比完乙個子串
都與自己需要的子串相比較,如果此時答案更優則更新答案,依次到長度為len-1.
下面上**:
#include#include#define max 61
char s[max];
void find(char str,int begin,int end)
else if(mid_cnt==ans_cnt&&i>ans_len)
}} printf("%s",ans_s);
return 0;
}
演算法訓練 字串統計
這道題看懂了一點不難,用笨方法暴力就能解決。本來想著我的暴力方法不好,但和另乙個大神的 比較後發現,我的執行速度竟然快些。所以就來分享一下 了 演算法訓練 字串統計 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的...
演算法訓練 字串統計
題目鏈結 問題描述 給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串 不同的出現可以相交 如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。輸入格式 第一行乙個數字l。第二行是字串s。l大於0,且不超過s的長度。提示列舉所有可能的子串,統計出現次數,找出符...
演算法訓練 字串統計
問題描述 給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串 不同的出現可以相交 如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。輸入格式 第一行乙個數字l。第二行是字串s。l大於0,且不超過s的長度。輸出格式 一行,題目要求的字串。輸入樣例1 4bbaa...