算法提高 P1003

时间限制:1.0s 内存限制:256.0MB

  作为一名网络警察,你的任务是监视电子邮件,看其中是否有一些敏感的关键词。不过,有些狡猾的犯罪嫌疑人会改变某些单词的字母顺序,以逃避检查。请编写一个程序,发现这种调整过顺序的关键词。程序的输入有两行,第一行是关键词列表,第二行是待检查的句子。程序的输出为在该句子中所找到的经过顺序调整的关键词。(单词全部为小写,单词之间以一个空格分隔,每一行的单词个数不限)

输入:

  guns mines missiles

  aameric ssell snug dan iimsssle ot sit neeemis

输出:

  guns missiles

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner; public class P1003 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String[] password = in.nextLine().split(" ");
String[] pattern = in.nextLine().split(" ");
in.close(); List<String> list = (List<String>) new ArrayList<String>();
for (String string : pattern) {
String ans = march(string, password);
if (!ans.equals("")) {
list.add(ans);
}
} Collections.sort(list);
for(String string : list) {
System.out.print(string + " ");
}
} private static String march(String string, String[] password) {
for (String s : password) {
char[] cn = string.toCharArray();
char[] cd = s.toCharArray(); Arrays.sort(cn);
Arrays.sort(cd);
if (new String(cn).equals(new String(cd))) {
return s;
}
}
return "";
} }
05-11 20:26