刷題總結:
[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...