boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 电话号码的英文combination变种
相关主题
Java 问题,请教如何找出一个array里的duplicate segments? (转载)
G onsite 概率题
Amazon面挂了,求给分析一下
问个算法题
wordBreak问题,有非递归的方法么
online coding的时候除了功能以外还需要注意什么呢?
问个常见算法题的变形
问个常见算法题的变形
hashtable在c++里怎么实现?
find, insert, delete, getRandom in O(1)
相关话题的讨论汇总
话题: 字典话题: 递归话题: string话题: valid话题: ghij
进入JobHunting版参与讨论
1 (共1页)
w*********m
发帖数: 4740
1
不是打印所有可能的组合。只打印valid的
字典里保存的是单个的词,不是整个的词组。比如一个电话的10位数match上了abc def
ghij。
abc,def,ghij是3个不同的词。字典里保存的是abc,def,ghij是3个词,不是abcdefghij。
seems最快的办法要先给字典建prefix tree,这样才可以在扫瞄电话的过程中提前返回。
比如前2个数列举到了ab,没有任何词以ab开头,也没有任何词以b开头(虽然a在字典中
),这时就不用在往下try aba了,直接开始try ac。
c********p
发帖数: 1969
2
mark
w*********m
发帖数: 4740
3
总之我是被黑了。

【在 c********p 的大作中提到】
: mark
z****e
发帖数: 54598
4
题目我忘了
原题是什么?

【在 w*********m 的大作中提到】
: 总之我是被黑了。
w*********m
发帖数: 4740
5
给个电话,找其对应的有意义的英文组合
原体是所有组合

【在 z****e 的大作中提到】
: 题目我忘了
: 原题是什么?

c********p
发帖数: 1969
6
比起你,我今天才是被黑了。

【在 w*********m 的大作中提到】
: 总之我是被黑了。
c********p
发帖数: 1969
7
你能看一下你心想里我的代码么?

【在 z****e 的大作中提到】
: 题目我忘了
: 原题是什么?

w*********m
发帖数: 4740
8
没过就没啥差别,没有更黑一说。这个黑我的是个密友。上次我还头一次被国人黑了
他开始没说清楚字典只含单个词,不是全长
我是写出来了,只不过字典用的Set
他说可以early terminate,我说那得用prefix tree才行

【在 c********p 的大作中提到】
: 比起你,我今天才是被黑了。
c********p
发帖数: 1969
9
我先mark了,回头看看。
能告诉我哪家么?
什么是密友?

【在 w*********m 的大作中提到】
: 没过就没啥差别,没有更黑一说。这个黑我的是个密友。上次我还头一次被国人黑了
: 他开始没说清楚字典只含单个词,不是全长
: 我是写出来了,只不过字典用的Set
: 他说可以early terminate,我说那得用prefix tree才行

z****e
发帖数: 54598
10
可以hash干掉duplication呀,set不是对了么?

【在 w*********m 的大作中提到】
: 没过就没啥差别,没有更黑一说。这个黑我的是个密友。上次我还头一次被国人黑了
: 他开始没说清楚字典只含单个词,不是全长
: 我是写出来了,只不过字典用的Set
: 他说可以early terminate,我说那得用prefix tree才行

相关主题
问个算法题
wordBreak问题,有非递归的方法么
online coding的时候除了功能以外还需要注意什么呢?
问个常见算法题的变形
进入JobHunting版参与讨论
z****e
发帖数: 54598
11
先找到所有可能的组合,这个跟前题一致
然后打印valid的时候需要查找
查找效率最高的不是tree,就是hashcode
字典里面,26个字母只要固定下来
hashcode可以直接编出不碰撞的code
取java缺省的prime=31就好了
都不需要override hashcode方法
这样查找效率可以实现o(1)
我觉得一开始你说set是对的

【在 w*********m 的大作中提到】
: 不是打印所有可能的组合。只打印valid的
: 字典里保存的是单个的词,不是整个的词组。比如一个电话的10位数match上了abc def
: ghij。
: abc,def,ghij是3个不同的词。字典里保存的是abc,def,ghij是3个词,不是abcdefghij。
: seems最快的办法要先给字典建prefix tree,这样才可以在扫瞄电话的过程中提前返回。
: 比如前2个数列举到了ab,没有任何词以ab开头,也没有任何词以b开头(虽然a在字典中
: ),这时就不用在往下try aba了,直接开始try ac。

w*********m
发帖数: 4740
12
他最后要的是还没把一个组合完全找出来就提前back
比如才看到前3个字母

【在 z****e 的大作中提到】
: 先找到所有可能的组合,这个跟前题一致
: 然后打印valid的时候需要查找
: 查找效率最高的不是tree,就是hashcode
: 字典里面,26个字母只要固定下来
: hashcode可以直接编出不碰撞的code
: 取java缺省的prime=31就好了
: 都不需要override hashcode方法
: 这样查找效率可以实现o(1)
: 我觉得一开始你说set是对的

w*********m
发帖数: 4740
13
你说的是啥duplication?

【在 z****e 的大作中提到】
: 可以hash干掉duplication呀,set不是对了么?
w*********m
发帖数: 4740
14
你这到底啥意思?
比如最后的一个组合是 get bank atm
字典中有get,bank和atm,但没有getbankatm
你这个咋搞?

【在 z****e 的大作中提到】
: 先找到所有可能的组合,这个跟前题一致
: 然后打印valid的时候需要查找
: 查找效率最高的不是tree,就是hashcode
: 字典里面,26个字母只要固定下来
: hashcode可以直接编出不碰撞的code
: 取java缺省的prime=31就好了
: 都不需要override hashcode方法
: 这样查找效率可以实现o(1)
: 我觉得一开始你说set是对的

z****e
发帖数: 54598
15
那就变成切割题
给你一个string,快速判断,切割开来的小块
是不是valid string
结合前面的,外加递归和dfs
我依稀记得leetcode上有类似的题目

【在 w*********m 的大作中提到】
: 你这到底啥意思?
: 比如最后的一个组合是 get bank atm
: 字典中有get,bank和atm,但没有getbankatm
: 你这个咋搞?

w*********m
发帖数: 4740
16
对呀。我就这么实现的。先找到一个完全长的string,再recursive地try所有cut的方
式,有一种成功就提前返回true。
结果他要求在找到完全长的string前就提前结束,如果不可能。
那就只能用prefix tree了

【在 z****e 的大作中提到】
: 那就变成切割题
: 给你一个string,快速判断,切割开来的小块
: 是不是valid string
: 结合前面的,外加递归和dfs
: 我依稀记得leetcode上有类似的题目

z****e
发帖数: 54598
17
递归+dfs不就可以了

【在 w*********m 的大作中提到】
: 对呀。我就这么实现的。先找到一个完全长的string,再recursive地try所有cut的方
: 式,有一种成功就提前返回true。
: 结果他要求在找到完全长的string前就提前结束,如果不可能。
: 那就只能用prefix tree了

z****e
发帖数: 54598
18
它的意思不用bfs,用dfs吧?
hashcode还是要用的

【在 w*********m 的大作中提到】
: 对呀。我就这么实现的。先找到一个完全长的string,再recursive地try所有cut的方
: 式,有一种成功就提前返回true。
: 结果他要求在找到完全长的string前就提前结束,如果不可能。
: 那就只能用prefix tree了

w*********m
发帖数: 4740
19
你怎么还是没明白
如果字典是一个HashSet,一共要两个dfs递归
第一个dfs递归用全部数字递归找一个对应的string
在得到这个string后,调用第二个dfs递归把这个string递归分割,去字典了看每个分
割出的词是不是都存在
他要求在第一个递归里尽量不要递归到全部数字就返回,如果发现这条路走不通

【在 z****e 的大作中提到】
: 递归+dfs不就可以了
z****e
发帖数: 54598
20
也就是要合并两个递归?

【在 w*********m 的大作中提到】
: 你怎么还是没明白
: 如果字典是一个HashSet,一共要两个dfs递归
: 第一个dfs递归用全部数字递归找一个对应的string
: 在得到这个string后,调用第二个dfs递归把这个string递归分割,去字典了看每个分
: 割出的词是不是都存在
: 他要求在第一个递归里尽量不要递归到全部数字就返回,如果发现这条路走不通

相关主题
问个常见算法题的变形
hashtable在c++里怎么实现?
find, insert, delete, getRandom in O(1)
电面是不是被烙印黑了
进入JobHunting版参与讨论
w*********m
发帖数: 4740
21
可以这么说。但是没法简单合并。第二个递归必须要try所有的segmentations,都不对
,才不对。但在第一个递归里,你还没拿到全长的string,只看见部分的string,这部
分的string的全部segmentations都不在字典里也不能说明这条路不对,因为再加一个
字母就有可能在字典里了
所以我说得用prefix tree才能在看到部分string时能决定是不是在字典里
但我写了两个递归之后,时间已经差不多了,我就讲了idea,他也没让我写prefix
tree。但我感觉99%他会给坏评价了

【在 z****e 的大作中提到】
: 也就是要合并两个递归?
j*******r
发帖数: 201
22
The better solution:
1. preprocess the dictionary:
Traverse all valid words in the dictionary,
build a hashmap with key=digit, value = a set of valid words with the same
digit
2. When receive the digit input, search the hashmap to get all valid words.
Complexity: O(1)

def
abcdefghij。
回。

【在 w*********m 的大作中提到】
: 不是打印所有可能的组合。只打印valid的
: 字典里保存的是单个的词,不是整个的词组。比如一个电话的10位数match上了abc def
: ghij。
: abc,def,ghij是3个不同的词。字典里保存的是abc,def,ghij是3个词,不是abcdefghij。
: seems最快的办法要先给字典建prefix tree,这样才可以在扫瞄电话的过程中提前返回。
: 比如前2个数列举到了ab,没有任何词以ab开头,也没有任何词以b开头(虽然a在字典中
: ),这时就不用在往下try aba了,直接开始try ac。

w*********m
发帖数: 4740
23
这个我也提了,不过不是他要的答案
当然也许他要的答案就是你没有写成code的那个

【在 j*******r 的大作中提到】
: The better solution:
: 1. preprocess the dictionary:
: Traverse all valid words in the dictionary,
: build a hashmap with key=digit, value = a set of valid words with the same
: digit
: 2. When receive the digit input, search the hashmap to get all valid words.
: Complexity: O(1)
:
: def
: abcdefghij。

w*********m
发帖数: 4740
24
还有就是,要达到O(1)
就得把字典里能组合成10位电话的所有词对应的数字全部组合一遍,不便宜的

【在 j*******r 的大作中提到】
: The better solution:
: 1. preprocess the dictionary:
: Traverse all valid words in the dictionary,
: build a hashmap with key=digit, value = a set of valid words with the same
: digit
: 2. When receive the digit input, search the hashmap to get all valid words.
: Complexity: O(1)
:
: def
: abcdefghij。

1 (共1页)
进入JobHunting版参与讨论
相关主题
find, insert, delete, getRandom in O(1)
电面是不是被烙印黑了
攒rp,Amazon两轮电话面经
再来一个组合题吧
A家的题
关于leetcode的Scramble String问题
boggle game是不是只有backtracking的解法?
Ebay 三轮skype面筋(免onsite Offer)
请教一道公司面试题
问一个Pinterest的题目
相关话题的讨论汇总
话题: 字典话题: 递归话题: string话题: valid话题: ghij