目錄
1,題目描述
Sample Input 1:
3
Itai nyan~
Ninjin wa iyadanyan~
uhhh nyan~
Sample Output 1:
nyan~
Sample Input 2:
3
Itai!
Ninjinnwaiyada T_T
T_T
Sample Output 2:
nai
題目大意
找出一個人說出的每段話中,共同帶有的最長後綴。
只要有一段話沒有此共同後綴,就不算。
2,思路
- 聲明字符串類型ans和s。ans存放最終結果,初始爲第一行字符。
- s接受第二行的字符。將ans與s的末尾字符一一對比,截取相同的部分重新賦值給ans;
- 重複2,直至所有數據接收完畢;
- 根據ans.size()判斷輸出;
3,AC代碼
#include<bits/stdc++.h>
using namespace std;
int main(){
#ifdef ONLINE_JUDGE
#else
freopen("1.txt", "r", stdin);
#endif // ONLINE_JUDGE
string ans, s;
int N;
scanf("%d\n", &N);
getline(cin, ans); //接受一行字符
for(int i = 1; i < N; i++){
getline(cin, s);
int a = ans.size() - 1, b = s.size() - 1;
while(a >= 0 && b >= 0 && ans[a] == s[b]){
a--;b--;
}
ans = ans.substr(a + 1); //提取末尾相同部分
}
if(ans.size() == 0)
cout<<"nai";
else cout<<ans;
return 0;
}
一發入魂。