演算法入門 3 4回文

2021-09-30 11:43:29 字數 640 閱讀 9140

大致過程為:先預處理,將非字母字元去掉,並將所有大寫字母轉為小寫字母;然後從第二個字元開始作為中間元素查詢最長的回文,並記錄最長的長度和位置;

難點是:輸出為原輸入字串的子串,這裡用的方法和作者的一樣,用陣列p記錄預處理後的每個字元在原字串的位置。

**如下:

//2023年6月24日23:16:08

#include #include #include using namespace std;

int p[5000+10];

int main()

else if(inputstr[it]>='a' && inputstr[it]<='z')

}for(string::size_type it=1 ; it<=midstr.size() ; it++)

}//aba

i = 1;

if(midstr[mid-1]==midstr[mid+1])}}

// cout << st << " " << en << endl;

for(string::size_type it=p[st] ; it<=p[en] ; it++)

cout << endl;

return 0;

}

演算法競賽入門經典 例題 3 4 回文串

輸入乙個字串。求出當中最長的回文子串。子串的含義是 在原串中連續出現的字串片段。回文的含義是 正著看和倒著看同樣。如abba和yyxyy。在推斷時,應該忽略全部標點符號和空格。且忽略大寫和小寫。但輸出應保持原樣 在回文串的首部和尾部不要輸出多餘字元 輸入字串長度不超過5000,且占領單獨的一行。應該...

34 回文子串

總時間限制 1000ms 記憶體限制 65536kb 描述 給定乙個字串,輸出所有長度至少為2的回文子串。回文子串即從左往右輸出和從右往左輸出結果是一樣的字串,比如 abba,cccdeedccc都是回文字串。輸入乙個字串,由字母或數字組成。長度500以內。輸出輸出所有的回文子串,每個子串一行。子串...

34 回文子串

34 回文子串 檢視 提交 統計 提問 總時間限制 1000ms 記憶體限制 65536kb 描述給定乙個字串,輸出所有長度至少為2的回文子串。回文子串即從左往右輸出和從右往左輸出結果是一樣的字串,比如 abba,cccdeedccc都是回文字串。輸入乙個字串,由字母或數字組成。長度500以內。輸出...