最长公共字符串前缀
#include<bits/stdc++.h>
using namespace std;
//题解思路来自 最长公共字符串后缀
int main()
{
int n;
while(cin>>n)
{
if(n!=0)
{
string* A=new string[n];
for(int i=0;i<n;i++)
cin>>A[i];
string res="";
sort(A,A+n);//排序后有相同前缀的字符串会相邻,若最后一个有则中间的全有
for(int i=0;i<A[0].size();i++)
{
if(A[0][i]==A[n-1][i])//只需要比较第一个与最后一个即可
res+=A[0][i];
else break;//当不同时即为最长公共前缀
}
cout<<res<<endl;
}
}
}