luogu1210 回文檢測

2022-08-20 11:54:11 字數 1128 閱讀 8365

據說如果你給無限只母牛和無限臺巨型可攜式電腦(有非常大的鍵盤),那麼母牛們會製造出世上最棒的回文。你的工作就是去尋找這些牛製造的奇觀(最棒的回文)。

在尋找回文時不用理睬那些標點符號、空格(但應該保留下來以便做為答案輸出),只用考慮字母'a'-'z'和'a'-'z'。要你尋找的最長的回文的文章是乙個不超過20,000個字元的字串。我們將保證最長的回文不會超過2,000個字元(在除去標點符號、空格之前)。

輸入檔案不會超過20,000字元。這個檔案可能一行或多行,但是每行都不超過80個字元(不包括最後的換行符)。

輸出的第一行應該包括找到的最長的回文的長度。

下一行或幾行應該包括這個回文的原文(沒有除去標點符號、空格),把這個回文輸出到一行或多行(如果回文中包括換行符)。

如果有多個回文長度都等於最大值,輸出最前面出現的那乙個。

confucius say: madam, i'm adam.

madam, i'm adam

題目翻譯來自nocow。

usaco training section 1.3

那麼就這樣打個回文自動機(manacher),找個最長回文就ac妥妥滴,還有就是注意讀題......

#include #include #include #include #define ll long long

#define inf (1<<30)

using namespace std;

char s[50000],t[50000];

int n,m;int sf[50000],p[50000];

int ans,max;

void add(char c,int pos)

int main()

t[++m]='#';

int id=0,mx=0;p[0]=1;

for(int i=1;i<=m;i++)

} int l=sf[ans-p[ans]+2],r=sf[ans+p[ans]-2];

printf("%d\n",max-1);

for(int i=l;i<=r;i++)

printf("%c",s[i]);

printf("\n");

return 0;

}

P1210 回文檢測 manacher演算法

p1210 回文檢測 manacher演算法 str2 i str2 i a a str2只取小寫字母,因為,回文大小寫都算,但字元判斷確不是這樣,所以這樣處理 len init str2 init是要返回新陣列長度的。for i 1 ii len i min maxn i,len 2 po i e...

洛谷P1210回文檢測

據說如果你給無限只母牛和無限臺巨型可攜式電腦 有非常大的鍵盤 那麼母牛們會製造出世上最棒的回文。你的工作就是去尋找這些牛製造的奇觀 最棒的回文 在尋找回文時不用理睬那些標點符號 空格 但應該保留下來以便做為答案輸出 只用考慮字母 a z 和 a z 要你尋找的最長的回文的文章是乙個不超過20,000...

FCC課程中第254, 回文檢測。

function palindrome str p tolowercase return s1 palindrome hello world 程式返回 hello world。說明replace沒有生效。replace方法沒有掌握,搜尋後得到 str.replace a b str中第乙個a被替換為...