package PAT;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class PAT_1077 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String[] strs = new String[N];
int shortestLength = 277;
for (int i = 0; i < N; i++) {
strs[i] = br.readLine();
shortestLength = Math.min(shortestLength, strs[i].length());
}
int answer = 0;
for (int i = 0; i < shortestLength; i++) {
boolean flag = false;
for (int j = 1; j < N; j++) {
if (strs[j].charAt(strs[j].length()-i-1)!=strs[j-1].charAt(strs[j-1].length()-i-1)){
flag=true;
break;
}
}
if (flag){
break;
}else {
answer++;
}
}
if (answer==0){
System.out.print("nai");
}else {
System.out.println(strs[0].substring(strs[0].length()-answer));
}
}
}
AC答案2
package PAT;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class PAT_1077_2 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String ans = "";
for (int i = 0; i < N; i++) {
String str = new StringBuilder(br.readLine()).reverse().toString();
if (i == 0) {
ans = str;
} else {
int minLength = Math.min(ans.length(), str.length());
for (int j = 0; j < minLength; j++) {
if (ans.charAt(j) != str.charAt(j)) {
ans = str.substring(0, j);
break;
}
}
}
}
if (ans.length() == 0) {
System.out.print("nai");
}else {
ans = new StringBuilder(ans).reverse().toString();
System.out.print(ans);
}
}
}