大意:給出一篇文章(包括字母非字母以及換行符),判斷長度大於n的回文詞的個數,並將每乙個回文詞輸出(回文中心相同的算乙個,且只輸出最長的)。注意:判斷時忽略非字母字元和大小寫,但是輸出時全部輸出(包括換行符)。
【題解】
列舉回文中心即可,注意回文詞個數為奇數或是偶數要分別討論,讀入時要注意用getchar把所有的都讀進來(因為不能忽略換行符)。
【**】
#include#include#includeusing namespace std;
int n,len,tmp,head,tail,headloc,tailloc,ans,stj,sto;
char s[50005],ch[50005],x;
bool pd;
int loc[5005];
inline bool ok(int head,int tail,int mid)
int main()
for (int i=1;i<=len;++i)
if (s[i]>='a'&&s[i]<='z'||s[i]>='a'&&s[i]<='z')
if (n%2==1) stj=n/2,sto=n/2+1;//如果n為奇數,回文是奇數個的一邊最少有n/2個,偶數個的一邊最少有n/2+1個
else stj=sto=n/2;//如果n為偶數,回文數是奇數數個的一邊最少有n/2個,偶數個的也最少有n/2個
for (int i=stj+1;i<=tmp-stj;++i)
if (pd)
} if (i-sto+1>=1&&i+sto<=tmp)
if (pd)
} }printf("%d\n",ans);
}
校內互測 陳老師搬書
問題描述 陳老師喜歡網購書籍,經常一次購它個百八十本,然後拿來倒賣牟取暴利。前些天,高一的新同學來了,他便像往常一樣兜售他的書,經過一番口舌,同學們決定買他的書,但是陳老師桌上的書有三堆,每一堆都有厚厚的一疊,他要想個辦法用最輕鬆的方式把書拿下來給同學們。但是你想逗一下陳老師,於是你設計乙個最累的方...
回文詞 題解
題目描述 回文詞是一種對稱的字串 也就是說,乙個回文詞,從左到右讀和從右到左讀得到的結果是一樣的。任意給定乙個字串,通過插入若干字元,都可以變成乙個回文詞。你的任務是寫乙個程式,求出將給定字串變成回文詞所需插入的最少字元數。比如字串 ab3bd 在插入兩個字元後可以變成乙個回文詞 dab3bad 或...
模擬 回文詞
題目描述 回文詞是一種對稱的字串,也就是說 乙個回文詞,從左向右讀和從右向左讀的結果都是一樣的.任意給定乙個字串,通過插入若干個字元,都可以變成乙個回文詞.你的任務是寫乙個程式,求出給定字串變成回文詞所需插入的最小字元數.比如,字串 ab3db 在插入兩個字元後可以變成乙個回文詞 dab3bad a...