import java.util.*;
public class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
int k = sc.nextInt();
int n = input.length();
List<String> list = new ArrayList<String>();
Map<String, Integer> map = new HashMap<String, Integer>();
int index = 0;
for(int i = 0; i < n; i++){
for(int j = i + 1; j <= n && (j-i)<= k; j++){
if(!map.containsKey(input.substring(i, j))){
map.put(input.substring(i, j), index);
list.add(input.substring(i, j));
index++;
}
}
}
Collections.sort(list);
System.out.println(list.get(k-1));
}
}注意考虑了两点:
1.子字符串添加的时候可能重复,所以使用了一个hashmap来确保无重。
2.第k小子串所以所有参加比较的子串长度不大于k。
完成以上两点后用sort()就ok了。

京公网安备 11010502036488号