字串演算法學習筆記(三)

2021-10-07 09:55:07 字數 1736 閱讀 6615

回文字串是指正序和反序以向的字串
// 定義前後指標,看你對應的位置是不是一樣

bool

judge

(string a,

int size)

int front;

// 前指標

int end;

// 後指標

front =0;

// 初始指向字串的頭

end = size -1;

// 初始指向字串的尾

while

(front < end)

++ front;

// 前指標後移

-- end;

// 後指標前移

}return

true

;}

// 也是雙指標,不過這次是從中間往兩邊進行搜尋,判斷是不是回文

bool

judge2

(string a,

int size)

int front, end;

// 定位到中間位置

int middle =

((size >>1)

-1)>=0?

(size >>1)

-1:0

; front = middle;

end = size - middle -1;

while

(front >=0)

// 向兩邊擴充套件

-- front;

++ end;

}return

true

;}

def

judge

(s):

return s == s[::

-1]

// 回文數判斷

#include

#include

using

namespace std;

bool

judge

(string a,

int size)

int front;

// 前指標

int end;

// 後指標

front =0;

// 初始指向字串的頭

end = size -1;

// 初始指向字串的尾

while

(front < end)

++ front;

// 前指標後移

-- end;

// 後指標前移

}return

true;}

bool

judge2

(string a,

int size)

int front, end;

// 定位到中間位置

int middle =

((size >>1)

-1)>=0?

(size >>1)

-1:0

; front = middle;

end = size - middle -1;

while

(front >=0)

// 向兩邊擴充套件

-- front;

++ end;

}return

true;}

intmain()

字串匹配KMP演算法學習筆記

字串匹配,leetcode28題。時間複雜度o mn 的演算法大家都會,題解裡面官方賬號給出的利用字串雜湊判等的o n 演算法也很優秀。本篇的重點是kmp演算法。如果還不是很好理解,可以看labuladong的題解。乙個kmp演算法易理解版本,講解的部分也很清楚。本篇主要是對此題解做乙個補充,個人感...

字串各演算法學習

在網路賽期間罷賽不做題了過來寫部落格真是一種罪過,然而被零封實在是沒有勇氣堅持最後乙個小時。兩個隊友都不在,單挑太水了 進入正題 模版上述地方有,根據題目對自己的理解進行解釋 題意 給定m和l和乙個字串,求該串中連續m個長為l的子串互不重複的數目 char s maxn ull base maxn ...

字串匹配之RK演算法 學習筆記

rk演算法是rabin karp演算法的簡稱,是經典的字串匹配演算法,在 演算法導論 上是有介紹的,有興趣的同學可以去看看。rk演算法的複雜度可以說是比上不足比下有餘,比一般的匹配演算法要好,但是又比不上kmp,sunday等演算法。演算法表現跟快排比較相似,演算法平均複雜度表現較好,但最壞情況時複...