I 2714下沉的船
一艘船很不幸的撞上了暗礁,船长组织大家上救生艇,而且船长决定女人(woman)和小孩(child)先上船,然后其次是男人(man),最后是船长(captain)。给出原来的顺序,通过编程得到按船长要求排列后的顺序。
身份优先级: woman = child > man > captain.
注意:如果两者的身份优先级一样,请按原来的序列的顺序决定,原序列中在前面的人,依然在前面。
import java.math.BigInteger;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
while(s.hasNext())
{
int t=s.nextInt();
List<String>list1=new ArrayList<String>();
List<String>list2=new ArrayList<String>();
List<String>list3=new ArrayList<String>();
while(t-->0)
{
String a=s.next();
String b=s.next();
if(b.equals("woman")||b.equals("child"))
list1.add(a);
else if(b.equals("man"))
list2.add(a);
else if(b.equals("captain"))
list3.add(a);
}
Iterator<String> iter1=list1.iterator();
while(iter1.hasNext())
{
String str=iter1.next();
System.out.println(str);
}
Iterator<String> iter2=list2.iterator();
while(iter2.hasNext())
{
String str=iter2.next();
System.out.println(str);
}
Iterator<String> iter3=list3.iterator();
while(iter3.hasNext())
{
String str=iter3.next();
System.out.println(str);
}
}
s.close();
}
}
J 2397 分类游戏
第一行给出m,n,第二行给出m个前缀(单个大写字母),后n行每行有一个单词。输出每个前缀所匹配的一个或多个单词,没有不输出。(忽略单词首字母大小写)
import java.math.BigInteger;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
while(s.hasNext())
{
int m=s.nextInt();
int n=s.nextInt();
char t[]=new char[10];
for(int i=0;i<m;i++)
{
String str=s.next();
t[i]=str.charAt(0);
}
List[] l=new List[120];
for(int i=0;i<n;i++)
l[i]=new ArrayList();
for(int i=0;i<n;i++)
{
String s1=s.next();
for(int j=0;j<m;j++)
{
if(s1.toUpperCase().charAt(0)==t[j])
{
l[j].add(s1);
break;
}
}
}
for(int i=0;i<m;i++)
{
if(l[i].size()==0)
continue;
for(int j=0;j<l[i].size();j++)
{
System.out.print(l[i].get(j));
if(j==l[i].size()-1)
System.out.println();
else
System.out.print(" ");
}
}
System.out.println();
}
s.close();
}
}
附学习集合链接:
我们为什么要使用List和Set(List,Set详解):https://blog.csdn.net/qq_34149805/article/details/68943004,作者:ConardLi