回文串判斷太多方法了,暴力,雜湊,manacher。。。
描述:測試資料有多組:
對於每組測試資料輸入乙個n表示字串長度,接著輸入長度為n的字串(1 <= n <= 1e7),對於每組輸出判斷當前字串是否為回文串,如果是回文串輸出yes,否則輸出no。
input
6aaaaaa
6xuejie
output
yesno
這道題其實可以加上雙雜湊來精準判斷,無奈超時,所以我有兩個mod和x也就是base
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll long long
#define ull unsigned long long
using
namespace std;
const
int maxx=
0x3f3f3f3f
;const ull mod1=
1e9+7;
const ull mod2=
1e9+9;
const ull x1=
1331
;const ull x2=
13331
;int
main()
if(n&1)
getchar()
;//若n為奇數則跳過乙個字元
ll w=
1,e=
1,c=
0,d=0;
for(
int i=
0;i<
(n>>1)
;i++)if
(a==c)
printf
("yes\n");
else
printf
("no\n");
}return0;
}
214最短回文串(KMP演算法 困難)
1 題目描述 給定乙個字串 s,你可以通過在字串前面新增字元將其轉換為回文串。找到並返回可以用這種方式轉換的最短回文串。2 示例 輸入 aacecaaa 輸出 aaacecaaa 3 題解 問題可以簡化為從s的開頭尋找最大的回文子串,然後將剩下的後面部分翻轉後接到s的前面。例如對於字串aacecaa...
困難的串問題
題目描述 如果乙個字串中存在相鄰的重複子串,則稱為容易的串,反之稱為困難的串。輸入正整數n和l,輸出由前l個大寫字母組成的,字典序第n小的困難的串。l不大於5,n不大於20。輸入在一行輸入n和l的值,遇到檔案末尾結束。輸出在一行輸出字典序第n小的困難的串。樣例輸入 7 3樣例輸出 abacaba i...
困難的串(dfs)
困難的串 題意 如果乙個字串包含兩個相鄰的重複子串,則稱它是 容易的串 其他串稱為 困難的串 例如,bb abcdabcd都是容易的串,而d dc abdad cbabcba都是困難的串。輸入正整數n和l,輸出由前l個字元組成的 字典序第k個困難的串。例如,當l 3時,前7個困難的串 分別為a ab...