锁定老帖子 主题:阿里实习一道题目:
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2011-06-10
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-06-11
编程之美上的最短摘要问题
|
|
返回顶楼 | |
发表时间:2011-06-12
谢谢!!1
|
|
返回顶楼 | |
发表时间:2011-06-17
喜羊羊与灰太狼 写道 编程之美上的最短摘要问题
好淡定的表达,完全不屑阿里! |
|
返回顶楼 | |
发表时间:2011-06-18
http://lisie.hdu.edu.cn/passionke/2011/06/10/df-2/
这个问题我用python做了 |
|
返回顶楼 | |
发表时间:2011-06-18
下面的代码试下看能满足要求不?
import java.util.ArrayList; import java.util.List; import com.sun.java_cup.internal.internal_error; public class test { public static void main(String[] args) { String source="Provides Providesddd Providesthe Providesclasses Provids necessary to create an applet and the classes an applet uses to communicate with its applet context"; String key[]={"Pr","vi","o"}; String srcString=extractSummary(source,key); System.out.println(srcString); } public static String extractSummary(String description,String[]keyword){ String []strTemp=description.split(" "); List <String>strcontainAll=new ArrayList<String>(); int len=1; boolean state=false; //取得符合条件的字串数组 for(String str1:strTemp){ str1= str1.trim(); for(String str2:keyword){ if(!str1.contains(str2)){ state=false; break; } state=true; } if(state){ strcontainAll.add(str1); } } //长度最短的子串 String fhString=""; if(strcontainAll.size()>0){ fhString=strcontainAll.get(0); for(String str3:strcontainAll){ if(fhString.length()>str3.length()){ fhString=str3; } } return fhString; }else { return ""; } } } |
|
返回顶楼 | |
发表时间:2011-06-18
这个题目不是阿里的原创 我早做过了...是一个递归的题目...
从第一个字符开始 按照Key 递归计算就可以了.. |
|
返回顶楼 | |
发表时间:2011-06-19
//给定一段产品的英文表述,包含M个英文单词,每个英文单词以空格分隔,无其他标志符号; //再给定N个英文关键字,请说明思路并编程实现String extractSummary(String description,String【】keyword): //目标是找出产品描述中包含N个关键字(每个关键字至少出现一次)的长度最短的子串 public class StringTest { /** * @param args */ public static String extractSummary(String description, String[] keyword) { String[] des=description.split(" "); boolean flag=false; int start=0,end=0,count=0; for(int i=0;i<keyword.length;i++){ flag=false; for(int j=0;j<des.length;j++){ if(des[j].equals(keyword[i])){ flag=true; count++; //初始化 if(i==0&&count==1){ start=end=j; } if(start>j){ start=j; } if(end<j){ end=j; } } } if(!flag){ return ""; } } StringBuffer result=new StringBuffer(""); for(int k=start;k<=end;k++){ result.append(des[k]).append(" "); } return result.toString(); } public static void main(String[] args) { // TODO Auto-generated method stub String description=" i love i love you forever "; String keyword[]={"love","forever","i"}; System.out.println(StringTest.extractSummary(description, keyword)); } } |
|
返回顶楼 | |
发表时间:2011-06-19
抄题,唉。
|
|
返回顶楼 | |
发表时间:2011-06-20
用正则可以否
|
|
返回顶楼 | |