2010-10-29 67 views
0

一次面试问题我在面试中被问及我没有得到解决方案。更新段落中文本的超链接:面试问题

以下是样本段落和我们的程序应该给予超链接这MATHES

“网络协议驱动程序 - 净协议的完全支持Java技术的驱动程序转换JDBC API调用到DBMS无关的话网络协议,然后由服务器转换为DBMS协议,这个网络服务器中间件能够将所有基于Java技术的客户端连接到许多不同的数据库,具体使用的协议取决于供应商,一般来说,这是最灵活的JDBC API替代方案这种解决方案的所有供应商很可能会提供适合内联网使用的产品,为了使这些产品也支持互联网访问,他们必须处理额外的需求网络强加的安全性,通过防火墙访问等等。一些供应商正在将JDBC技术为基础的驱动程序到他们现有的数据库中间件产品”

为此我们需要给超链接都可以在数据库表中所说的话(URL表)

网络协议: www.network-protocol.com

网协议:www.netprotocol.com

问题是你如何去在对更新链接,上面的2个字图形?

我说过我会按照单词进行匹配并更新链接。

如果这是一个单词匹配和更新的网址,我们可以明确这样做。 但表中的单词长度可能是2或3或4最大值。那么匹配不起作用,我们需要恰好匹配2个字,例如网络协议网络协议

例如,如果我正在搜索协议字有很多匹配和更新错误URL的机会会更多。

什么是最好的解决方案,有没有可用的API?如果我们可以做得更高效。

回答

1
  1. 阅读完整的段落为一个字符串,即str
  2. str.replaceAll(phraseFromDB, "<a href='" + urlFromDB + "'>" + phraseFromDB + "</a>")的基础上,在数据库表中找到的记录编号的循环。
+0

如果表中有大约800项,将这项工作的理论问题? – gmhk 2010-10-29 09:42:41

+0

@harigm:我相信现在会。 :) – 2010-10-29 09:45:10

1

这里的东西我来想:

CEO或president;对于数据库中的任意数量的条目以及任意长度的文本(阅读:许多段落,甚至可能是页面),可以通过构建在数据库中持有短语并在树结构上搜索的词组来完成匹配。

例如假定数据库持有以下短语:

网络协议

网协议

苹果和梨

网络迷死

净是前述屎

...

那么你的树将有分别Networknet,​​与Networknet控股子节点,awesomeness和,is顶层...。

我不知道这是否是你尽管找什么,写这个只是因为你提到,它是在接受记者采访时:)

+0

你的意思是说使用树木收集帮助我解决问题? – gmhk 2010-10-29 10:17:58

+0

嗯,我的意思是给定一个像常规匹配可能无法工作的问题,可以利用树结构。但显然,如果现在的问题可以通过@Adeel提到的简单方法解决,这将是一个明显的矫枉过正 – posdef 2010-10-29 11:18:13