【发布时间】:2016-01-29 20:46:02
【问题描述】:
我们必须从一堆简单词和复合词中找出所有的简单词。例如:
输入:chat、ever、snapchat、snap、salesperson、per、person、sales、son、whatever、what so。
输出应该是: chat, ever, snap, per, sales, son, what, so
我的示例代码:
private static String[] find(String[] words) {
// TODO Auto-generated method stub
//System.out.println();
ArrayList<String> alist = new ArrayList<String>();
Set<String> r1 = new HashSet<String>();
for(String s: words){
alist.add(s);
}
Collections.sort(alist,new Comparator<String>() {
public int compare(String o1, String o2) {
return o1.length()-o2.length();
}
});
//System.out.println(alist.toString());
int count= 0;
for(int i=0;i<alist.size();i++){
String check = alist.get(i);
r1.add(check);
for(int j=i+1;j<alist.size();j++){
String temp = alist.get(j);
//System.out.println(check+" "+temp);
if(temp.contains(check) ){
alist.remove(temp);
}
}
}
System.out.println(r1.toString());
String res[] = new String[r1.size()];
for(String i:words){
if(r1.contains(i)){
res[count++] = i;
}
}
return res;
}
我无法使用上述代码获得解决方案。任何建议或想法
复合词=两个或多个词的连接;其余所有词都被视为简单词 我们必须删除所有的复合词
【问题讨论】:
-
好的,现在怎么办;你有问题吗?
-
观察到的行为是什么?
-
我无法得到儿子,因为它已经添加到我的列表中,而儿子正在被删除@atri
-
这道题中简单词的定义是什么?
标签: java arraylist collections set