阿里巴巴,淘宝一道面试题

//给定一段产品的英文表述,包含M个英文单词,每个英文单词以空格分隔,无其他标志符号;
//再给定N个英文关键字,请说明思路并编程实现String extractSummary(String description,String【】keyword):
//目标是找出产品描述中包含N个关键字(每个关键字至少出现一次)的长度最短的子串



//给定一段产品的英文表述,包含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));

	}

}

你可能感兴趣的:(编程,面试,J#,阿里巴巴)