演算法訓練 字串統計

2021-08-16 19:26:14 字數 978 閱讀 8796

演算法訓練 字串統計  

時間限制: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...