题目描述
有N个单词和字符串T,按字典序输出以字符串T为前缀的所有单词。
输入输出格式
输入格式:
输入文件第一行包含一个正整数N;
接下来N行,每行一个单词,长度不超过100;
最后一行包含字符串T。
【数据规模】
对于60%的数据,满足1≤N≤1000;
对于100%的数据,满足1≤N≤100000且所有字符均为小写字母;
输出格式:
按字典序升序输出答案。
输入输出样例
输入样例#1: 复制
6 na no ki ki ka ku k
输出样例#1: 复制
ka ki ki ku
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class StringAll {
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
int N=Integer.parseInt(scanner.nextLine());
String [] strs=new String[N];
for(int i=0;i<N;i++) {
strs[i]=scanner.nextLine();
}
Arrays.sort(strs);
String target =scanner.nextLine();
List<String> characters =new ArrayList<>();
for(int i=0;i<N;i++) {
if(isExit(strs[i], 0, target, "")) {
characters.add(strs[i]);
}
}
for (String string : characters) {
System.out.println(string);
}
}
public static boolean isExit(String str, int index,String target,String temp) {
if(temp.equals(target)) {
return true;
}
if(str.length()==index) {
return false;
}
return isExit(str, index+1, target,temp)||isExit(str, index+1, target, temp+str.charAt(0));
}
}