版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
题目
Java题解(最后一个测试用例没通过)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String totalStr = br.readLine();
int total = Integer.parseInt(totalStr);
// 读取字符串
List<String> list = new ArrayList<>();
for (int i = 0; i < total; i++) {
list.add(br.readLine());
}
// 找最短的字符串长度
int minLen = 1000;
String minStr = "";
for (String s : list) {
if (s.length() < minLen) {// 0?
minLen = s.length();
minStr = s;
}
}
// 有空串 输出nai
if (minLen == 0) {
System.out.println("nai");
return;
}
// 查找重复后缀
String sameStr = "";
String curStr = "";
label: for (int i = 1; i < minLen; i++) {
curStr = minStr.substring(minLen - i);
// 看是否相同后缀
for (String s : list) {
// if (!s.endsWith(curStr)||curStr.contains(" ")||curStr.contains(",")) {
// break label;
// }
if (!s.endsWith(curStr)) {
break label;
}
}
sameStr = curStr;
}
if (sameStr == null || sameStr.equals("")) {
System.out.println("nai");
} else {
System.out.println(sameStr);
}
}
}