题目:给定一段产品的英文表述,包含M个英文单词,每个英文单词以空格分隔,无其他标志符号;再给定N个英文关键字,请说明思路并编程实现String extractSummary(Stringdescription,String[] keyword):目标是找出产品描述中包含N个关键字(每个关键字至少出现一次)的长度最短的子串。
实现的代码如下:
package date0621;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
/**
*@author TonyJ
*@time 2011-6-21 上午08:44:26
*/
public class Test01 {
public static void main(String[] args) {
String src = "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" };
System.out.println(extractSummary(src, key));
}
// 给定一段产品的英文表述,包含M个英文单词,每个英文单词以空格分隔,无其他标志符号;
// 再给定N个英文关键字,请说明思路并编程实现String extractSummary(String
// description,String[] keyword):
// 目标是找出产品描述中包含N个关键字(每个关键字至少出现一次)的长度最短的子串
public static String extractSummary(String description, String[] keyword) {
String[] str = description.split(" ");
Map map = new HashMap();//用键值对的方式存储,键是字符串的值,值是字符串的长度
boolean isContain = true;
for (int i = 0; i < str.length; i++) {
for (int j = 0; j < keyword.length; j++) {
if (!str[i].contains(keyword[j])) {
isContain = false;
break;
}
}
if (isContain) {
map.put(str[i], str[i].length() + "");
}
}
String res = "";
Iterator iter = map.entrySet().iterator();
Iterator iter2 = map.entrySet().iterator();
int temp = Integer.parseInt(((Entry) iter2.next()).getValue() + "");
while (iter.hasNext()) {//迭代判断哪个是字符串的长度最短
Map.Entry entry = (Entry) iter.next();
//这是jdk1.4的环境下做的 不支持类型的自动装箱和拆箱
if (Integer.parseInt(entry.getValue() + "") <=temp) {
temp = Integer.parseInt(entry.getValue() + "");
res = (String) entry.getKey();
}
}
return res;
}
}
分享到:
相关推荐
根据提供的文件信息,我们可以分析出这是一道关于Java继承与方法重写的相关笔试面试题。题目涉及到了Java类的继承、方法重写、实例化对象时的调用顺序以及对象多态性等知识点。接下来,我们将对这些知识点进行详细的...
根据给定的文件内容,我们可以总结出一系列与Java面试相关的知识点。下面将详细解析每一道题目涉及的关键概念。 ### 第一部分:基础知识 #### 1. final, finally, finalize的区别 - **final**: 用于声明变量、方法...
"阿里软件JAVA笔试题" 阿里软件JAVA笔试题是阿里巴巴公司为招聘软件开发工程师所设计的一份笔试题目,涵盖了JAVA语言、数据结构、算法、设计模式、数据库等多方面的知识点。 本题目共有15道题目,涵盖了以下几个...
史上最全的android和java面试文档集。包括有: java程序员面试宝典.txt Java面试宝典2011版-1C,Java基础部分.doc... Java面试题及答案(基础题122道) - 在梦想与现实之间徘徊 - JavaEye技术网站.mht 等等,还有好多。
这是一道经典的Java面试题。解决这个问题需要了解Java的内存管理机制,包括FULL GC的触发条件、Perm Gen的设置、System.gc()方法的调用等。 Java集合框架 3. Java集合框架是Java语言中的一种重要概念,它提供了...
### Java面试题:行列转换详解 #### 一、问题背景 在进行数据分析或者报表处理时,经常需要将数据从一种格式转换成另一种格式以便更好地展示或分析。其中一种常见的转换需求是从行转列(即行列转换)。本篇文章将...
【一线互联网大厂Java核心面试题库】Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等..
"100家大公司Java笔试题汇总.doc"这份文档提供了丰富的实践材料,建议考生们深入研究每一道题,不仅要找出正确答案,还要理解背后的原理,这样才能在真正的笔试中游刃有余,成功叩开心仪企业的门扉。同时,通过反复...
企业公司软件测试面试笔试题集合 软件测试面试题 (测试基础).doc 01_企业面试试卷(综合).doc 01_企业面试试卷(综合)_参考答案.doc 04_企业面试试卷(测试基础).doc 04_企业面试试卷(测试基础)_参考答案.doc...
### 常见的Java上机面试题:深入解析与实战指南 在IT行业的求职过程中,尤其是对于软件工程师或开发者而言,上机编程面试成为了一道必经的门槛。这种形式的面试旨在全面评估应聘者的技术能力,不仅考察理论知识的...
Java面试题涵盖了许多核心知识点,包括基础技术、项目经验、逻辑推理和SQL查询。下面将对这些方面进行详细的解析。 1. **基础技术题** - **UML图**:UML(统一建模语言)有多种图表,包括类图、对象图、用例图、...
"java面试题_leetcode题解之第31题下一个排列" 的描述进一步确认了这是关于Java面试中的一道算法题目的解答,主要关注如何找到一个排列的下一个排列。在面试中,这样的问题通常用来评估候选人在处理数组操作和算法...
java程序员求职之前看这一套就够了。包括Java程序员阿里面经等,java求职必备知识点,简历模板,JAVA核心知识点整理,蓝桥杯java历年真题及答案整理(共129道题目及答案),Java面试突击-V3.0
JAVA面试题选择原则 - **筛选标准**:为了提高复习效率,本面试题集筛选掉了那些过时或者出现频率极低的问题,确保每一道题目都有实际的价值。 - **回答策略**:建议的答题方法包括三个方面:首先阐述基础知识,...
Java笔试题大集合是针对Java开发者进行技术面试和求职准备的重要资源,涵盖了广泛的知识点,旨在测试应聘者的编程基础、算法理解、数据结构、多线程、网络、数据库以及Java特性的掌握程度。这个大礼包通常包含不同...
java截取字符串,一道面试题。好像没有找到正确答案,今天找时间做了一个,仅供参考。本人运行过了。
【华为Java面试题详解】 1. **数组排序与字符串处理** 在这道题中,你需要接收一个包含多个数字的字符串,这些数字由逗号分隔。首先,我们需要使用`splitStringByComma`方法将字符串拆分成一个整数数组。这个方法...