字串刷題

2021-09-19 09:07:46 字數 1578 閱讀 5902

刷題總結:

[kuangbin帶你飛]專題十六 kmp & 擴充套件kmp & manacher [cloned]

a .kmp模板題

#include

using namespace std;

typedef

long

long ll;

const

int ma=

1e6+5;

int p[ma]

;int m[ma]

;int n,w;

ll next[ma]

;void

get_next()

else j=next[j];}

}void

kmp(

)else j=next[j];}

if(j==w) cout<1

"-1"

<}int

main()

return0;

}

b. kmp水題

c. kmp模板題

int

kmp()}

return ans;

}

d. kmp找迴圈節

參考部落格

題意:給一段字串,讓你新增一些字元,使得字串可以看作是由一段字串不斷重複得到的。問新增字元數量最小是多少?

分析:

#include

using namespace std;

typedef

long

long ll;

const

int ma=

1e6+5;

char p[ma]

;char m[ma]

;int len_p,len_m;

ll next[ma]

;void

get_next()

else j=next[j];}

}int

main()

return0;

}

e . 迴圈節水題
//部分**

while

(scanf

("%d"

,&n)

&&n)

} cout<}

f .poj 2406

ac通道

#include

#include

#include

using namespace std;

typedef

long

long ll;

const

int ma=

1e6*5+

5;char m[ma]

;int len_m;

int net[ma]

;void

get_next()

else j=net[j];}

}int

main()

return0;

}

g

h.

字串刷題ing

給定乙個字串,逐個翻轉字串中的每個單詞。示例 1 輸入 the sky is blue 輸出 blue is sky the 示例 2 輸入 hello world 輸出 world hello 解釋 輸入字串可以在前面或者後面包含多餘的空格,但是反轉後的字元不能包括。示例 3 輸入 a good ...

刷題(leetcode字串相關)

125.驗證回文字串 給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。思路 將字串中的大寫字母轉成小寫,只保留字母和數字,然後將字串與這個字串的反轉作比較 var ispalindrome function s 對比字串和字...

刷題(leetcode字串相關)

38.報數 報數序列是乙個整數序列,按照其中的整數的順序進行報數,得到下乙個數。其前五項如下 思路 對前乙個數進行報數,首先遍歷n,把從2開始記錄n的每個數,通過遍歷字串求解遍歷的每個數 var countandsay function n else str newstr return str 67...