求乙個字串中連續出現次數最多的子串

2021-06-09 23:27:37 字數 565 閱讀 4406

分析:乙個字元也算是字串,然而這是求連續最多的子串,abcbcbc,出現最多的為bc,連續出現3次,而如果是abcaaaaa,則a是出現次數最多的,次數為5.

可以首先逐個子串掃瞄來記錄每個子串出現的次數。如:abc字串,對應的子串為abc/bc/c,各出現一次,然後再逐漸縮小字串來得出正確的結果。

**如下:

#include "stdafx.h"

#include

#include

#include

using namespace std;

pairfun(const string& str)

結果:

總體思路是:首先把給出的字串按每次減少乙個頭部字元的方式存入vector中,然後開始在vector[0]中遍歷以a開頭的子串連續出現的次數。比較的方式為那vector[0]以a開頭的乙個字元和vector[1]內的比較 如果有 繼續 沒有 比較以ab開頭的子串 。依次類推。下面是vector[1]中以b開頭的的 步驟如上。

字串問題 求乙個字串中連續出現次數最多的子串

2013 09 14 10 47 39 在面試寶典上看到的題目,自己做了一下,用了c 中的string類,比較方便。思路 遍歷源字串的每乙個字元,以該字元為首的重複子串的長度為1到以該字元為首的字尾字串 即以該字串為首,到字元結尾的子串,比如abdcef的第三個字尾字串即為dcef 的長度的一半 對...

字串問題 求乙個字串中連續出現次數最多的子串

2013 09 14 10 47 39 在面試寶典上看到的題目,自己做了一下,用了c 中的string類,比較方便。思路 遍歷源字串的每乙個字元,以該字元為首的重複子串的長度為1到以該字元為首的字尾字串 即以該字串為首,到字元結尾的子串,比如abdcef的第三個字尾字串即為dcef 的長度的一半 對...

求乙個字串中連續出現次數最多的子串

求乙個字串中連續出現次數最多的子串,子串的長度可以是 1 乍一看,好像無處下手。簡單的窮舉效率太低,隨著輸入的文字增長,時間複雜度和空間複雜度就會火箭般竄公升至無法接受的地步。我們需要尋找規律。假設存在乙個長度為 n 的子串 s 出現的次數最多。那麼它具有哪些特點呢?s 中不會出現重複的字元 組成 ...