题目链接
此题主要学会使用reverse函数反转字符串,然后两两比较得到最长的公共尾缀并更新,最后记得反转回来。同时也注意学习string中substr函数的用法,参考
特别需要注意的还是cin了int变量之后,再使用getline之前,一定要用一个getchar()吸收多余的换行
·
·
·
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main() {
int N;
cin >> N;
string tmp="",res="";
getchar();//cin int之后再geiline要记得getchar()吸收空行
getline(cin,tmp);
res=tmp;
reverse(res.begin(),res.end());//反转之后两两进行比较,不断更新结果
for(int i=1;i<N;i++){
getline(cin,tmp);
int len=min(tmp.length(),res.length());
reverse(tmp.begin(),tmp.end());
for(int j=0;j<len;j++){
if(tmp[j]!=res[j]){
res=tmp.substr(0,j);
break;
}
}
}
reverse(res.begin(),res.end());
if(res.length()==0) cout << "nai";
else cout << res;
return 0;
}