原题目没有拷贝,只能用自己的语言描述一下了。
个人解析:这个题目的要点有两个,一是找相同的连续子串,二是排序且输出Ascii靠前的
代码如下,已提交且AC:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
List<String> list = new ArrayList<String>();
// 查找相同的子串
int start = 0;
for (int i = 0; i < s.length() - 1; i++) {
if (s.charAt(i) == s.charAt(i+1) ) {
// 末尾时,直接加上
if (i+2 == s.length()) {
list.add(s.substring(start,s.length()));
}
continue;
} else {
list.add(s.substring(start,i+1));
start = i+1;
continue;
}
}
// 自定义排序,长度长的在前面,长度相同时按字母顺序
Collections.sort(list, new Comparator<String>() {
public int compare(String o1, String o2) {
if (o1.length() == o2.length()) {
char c1 = o1.charAt(0);
char c2 = o2.charAt(0);
return c1 - c2;
} else {
return o2.length() - o1.length();
}
}
});
System.out.println(list.get(0));
}
}