原题见
:::::::::::链接在Vjudge因为UVA好像访问不了:::::::::::
这是一堆字符串,那么只要用Java强大的字符串处理功能就可以轻松解决
/*遇到大数类啊字符串啊可以先考虑考虑Java能不能做*/
首先java可以吧输入的字符串直接copy一个新的出来
然后我们对新字符串进行转小写和toCharArray()操作并把这个char[]进行排序
用一个字符串记录处理后不同的字符串,每个子字符串前后记得加上“ ”方便之后查找
这样只有查到有的就不再加入s字符串,并且删去原有List中的相同字符串
如果没有就加进去
执行如上操作后
还要注意最后输出是要排序的
再利用Collections类的sort()方法即可实现排序
for each 比起c++的迭代器美滋滋
这样就完成了所有操作
import java.util.*;
public class Main{
static LinkedList a=new LinkedList();
static LinkedList b=new LinkedList();
static void remove(String m,String x){
for(int i=a.size()-1;i>=0;i--) {
if(a.get(i).equals(m)) {
a.remove(i);
b.remove(i);
return;
}
}
}
public static void main(String args[]) {
Scanner in=new Scanner(System.in);
String s="";
while(in.hasNext()) {
String x=in.next();
if(x.equals("#"))break;
char r[]=x.toLowerCase().toCharArray();
Arrays.sort(r);
String m=" ";
for(char i:r)m+=i;
m+=" ";
if(s.contains(m)) {
remove(m,x);
}else {
a.add(m);
b.add(x);
s=s+m;
}
}
Collections.sort(b);
for(String q:b) {
System.out.println(q);
}
in.close();
}
}