演算法訓練 字串統計

2021-08-20 02:56:45 字數 1406 閱讀 2036

//這道題看懂了一點不難,用笨方法暴力就能解決。本來想著我的暴力方法不好,但和另乙個大神的**比較後發現,我的執行速度竟然快些。所以就來分享一下**了

演算法訓練 字串統計  

時間限制:1.0s   記憶體限制:512.0mb

問題描述

給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串(不同的出現可以相交),如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。

輸入格式

第一行乙個數字l。

第二行是字串s。

l大於0,且不超過s的長度。

輸出格式

一行,題目要求的字串。

輸入樣例1: 4

bbaabbaaaaa

輸出樣例1:

bbaa

輸入樣例2: 2

bbaabbaaaaa

輸出樣例2:

aa資料規模和約定

n<=60

s中所有字元都是小寫英文本母。 提示

列舉所有可能的子串,統計出現次數,找出符合條件的那個

我的思路:

1、找出步長為l的字串,記錄步長為l的字串中出現次數最多的字串,並記錄一些資訊。

2、步長++,迴圈到所輸入字串的最大長度

3、比較每個步長中選出的最大值,最後輸出結果。

我的**:

#include using namespace std;

//注意條件 :出現最大次數相等,輸出步長最長的那個字串

// 步長從l到 s.length()找起

// 在同一步長內,如果相等找最先出現的

int main()

b[index] = temp;//從temp處開始步長為l的字串符合條件

c[index] = l;

maxl[index] = a[temp];

index++;

l++;

} //找出最合適的字串

int max = 0;

for(int i=0;i=maxl[max]) max = i;

} //輸出求得的結果

cout《大神**:

#include #include #include using namespace std;

int main()

}int max = 0;

int k = 0;

vectorbook(v.size());

for (int i = 0; i <= v.size() - 1; i++)

}for (int i = 0; i <= v.size() - 1; i++)

}cout << v[k];

return 0;

}

演算法訓練 字串統計

演算法訓練 字串統計 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串 不同的出現可以相交 如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。輸入格式 第一行乙個數字l。第二行是字串s。l大於0,且...

演算法訓練 字串統計

題目鏈結 問題描述 給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串 不同的出現可以相交 如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。輸入格式 第一行乙個數字l。第二行是字串s。l大於0,且不超過s的長度。提示列舉所有可能的子串,統計出現次數,找出符...

演算法訓練 字串統計

問題描述 給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串 不同的出現可以相交 如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。輸入格式 第一行乙個數字l。第二行是字串s。l大於0,且不超過s的長度。輸出格式 一行,題目要求的字串。輸入樣例1 4bbaa...