演算法 與字串有關問題

2021-10-02 12:23:53 字數 1397 閱讀 9216

1 模式匹配問題

題目概述

給定字串textpattern,在字串text中找出字串pattern出現的第乙個位置 (從0開始)。如果不存在,則返回 -1。

輸入樣例

h el

lo

hello

hellollll

ll輸出樣例

2

22

解決方法

void

getnext

(char

* p,

int next)

else}}

intkmpsearch

(char

* t,

char

* p)

else}if

(j == m)

return i - j;

else

return-1

;}

在這裡插入**片
2 最長回文子串問題

題目概述

給定乙個字串,輸出其最長回文子串

輸入樣例

a ba

cd

abacd

abac

d輸出樣例

a ba

abaab

a

解決方法

void

manacher

(char

* s,

int p)

else

while

(s[i + p[i]

]== s[i - p[i]])

if(r < i + p[i])if

(p[i]

> max_p)

}for

(int i = max_i - max_p +

2; i <= max_i + max_p -

2; i +=2

) cout << endl;

}

演算法 字串問題 翻轉字串

翻轉字串 給定乙個字元型別的陣列chas,請在單詞間作逆序調整。只要做到單詞順序逆序即可。例如,如果看成字串 dog loves pig 則調整為 pig loves dog 過程 先整體逆序,在區域性單詞逆序 public static void rotateword char chas reve...

字串有關(BIF)

參考 筆記 字串的方法及注釋 1.capitalize 把字串的第乙個字元改為大寫 2.casefold 把整個字串的所有字元改為小寫 3 center width 將字串居中,並使用空格填充至長度width的新字串 4 count sub start end 返回sub在字串裡邊出現的次數,sta...

字串包含問題演算法

現在假設有2個字串r和s,其中m r.len n s.len,設計乙個演算法判斷字串s中的每個字元在r串中均存在.顯然,很容易想到的乙個演算法,最粗魯最暴力演算法,其時間複雜度o m n 也就是對s字串中的每個字元在r中進行查詢判斷 這或許是我自己想到的最快的方法了。顯而易見,這樣的演算法或許不是演...