【发布时间】:2016-08-04 22:28:00
【问题描述】:
我遇到了一个我无法解决的面试问题,我认为这是一个合适的地方。
问题的前提是检查两个数组是否“差不多相等”。
背景:
给定两个数组 A 和 B,count(B) >= count(A)。 A 和 B 中的元素是包含字母字符和可能 ONE SET 大括号的字符串。
示例:
A = {'Hello', 'World', 'This is {cool}'}
B = {'Hello', 'World', 'This is {cool}', '{This is cool}'}
像'{This is {cool}} 这样的东西永远不会出现,因为它有两组大括号。
如果满足以下条件,则称数组 A 和 B“几乎相等”:
- B 包含 A 中的所有元素
- 可以通过将大括号应用于 A 中的元素 (
Hello => {Hello}) 或将 A 中元素内的大括号移动到元素外部 (@987654325) 来获得 B 中不在 A 中的每个元素@)
编写一个函数来确定两个数组 A 和 B 是否“差不多相等”。注重效率。
我的幼稚解决方案:
我写了一个函数来从 A 中删除一个元素,检查该元素是否出现在 B 中,以及该元素的任何“排列”是否出现在 B 中。如果是,则从 B 中删除它们。最后我返回如果 A 和 B 都为空,则为真。我想知道是否有更有效的解决方案。
【问题讨论】:
-
我会通过这次面试测试
-
我想知道他们是否只需要这个功能,所以他们发布了一个虚假的职位空缺,让申请人免费编写代码。
-
哈哈,不知整个面试过程中经常出现这种情况