字母重排

来源:互联网 发布:mac自带的远程桌面连接 编辑:程序博客网 时间:2024/05/16 10:53

   输入一个字典(用*******结尾),然后在输入若干单词,每输入一个单词W,你都需要在字典中找到所有可以用w的字母重排后得到的单词,并按照字典序从小到大的顺序在一行中输出(如果不存在,输出:(),输出单词之间用空格或空行隔开。用例输入输出


代码如下:

import java.io.BufferedInputStream;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Scanner;public class B23{public  static String getDirectory(String s){String k=s.toLowerCase();char [] r=k.toCharArray();Arrays.sort(r);return String.valueOf(r);}public static void main(String[] args){  Scanner cin=new Scanner(new BufferedInputStream(System.in));ArrayList<String> value=new ArrayList<String>();ArrayList<String> key=new ArrayList<String>();while(cin.hasNext()){String s1=cin.next();if(s1.startsWith("*")){break;}value.add(s1);key.add(getDirectory(s1));}   while(cin.hasNext()){   String s2=cin.next();   ArrayList<String> result=new ArrayList<String>();   for(int i=0;i<key.size();i++){      if(getDirectory(s2).equals(key.get(i))){  result.add(value.get(i));   }   }   if(result.size()==0){   System.out.println(":(");   }   else{   Collections.sort(result);   for(int i=0;i<result.size();i++){   System.out.print("\t"+result.get(i));   }   System.out.println();   }   }}}