难点:卡了很久,输入第一个n后面有个换行符,不读取的话留在缓冲区会被读入第一个字符串,导致4个oj过不了,记住了!!!
思路:字符串反转每个和前面提取的公共部分比较。
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
int n; string ans;
scanf("%d", &n);
getchar();
for (int i = 0; i < n; i++)
{
string s;
getline(cin, s);
int length = s.length();
reverse(s.begin(), s.end());
if (i == 0)
ans = s;
else
{
int length1 = ans.length();
if (length < length1)
{
swap(ans, s);
}
for (int j = 0; j < ans.length(); j++)
{
if (ans[j] != s[j])
{
ans = ans.substr(0, j);
break;
}
}
}
}
reverse(ans.begin(), ans.end());
if (ans.length() == 0)ans = "nai";
cout << ans;
return 0;
}