Redian新闻
>
大家一般用gradle还是maven
avatar
大家一般用gradle还是maven# Programming - 葵花宝典
b*7
1
刚刚on-stie面试完某大公司。面试了7个人,大概问了20-30道题,有1道题不会,尽管
其他的都打上来了,很是郁闷,本以为自己准备的足够好了,哎。但是这道题不会,很
不甘心,希望大侠们帮助!!!
In our indexes, we have millions of URLs each of which has a link to the
page content, now, suppose a user type a query with wild cards *, which
represent 0 or multiple occcurrences of any characters, how to build the
index such that such a type of query can be executed efficiently and the
contents of all correpsonding URLs can be displayed to the users? For
example, given a query http://www.*o*ve
avatar
s*g
2
帮妈妈寻同行,谢谢
avatar
a*p
3
哥们最近跳槽,现在在湾区,因为有些想去Seattle,所以找工作的时候就只投了
Google Kirkland,Amazon和Facebook,先拿到Facebook offer以后就接了。Bootcamp
第二星期和我mentor聊了一下,他和HR确认了可以内部调动我去Seattle office,现在
只要我和HR确认一下就可以开始调动流程了。不过我有点犹豫到底去不去,去Seattle
是个大决定。有三个主要原因我想去:1)距离老婆父母家近点,回国有直飞北京飞机
2)Seattle office比较小,可能上升空间比较大(只是猜想)3)房子便宜点(哎,
loser思维)。 我30好几了,年纪不小了,老婆全职在家带孩子,国内还有老父老母。
实话说怕走错。跪求版上高人大牛指点,先谢谢了。
avatar
u*s
5
上学时候一直用maven, 上班以后要用gradle,这两东西具体区别在哪里?
avatar
b*7
6
刚刚on-stie面试完某大公司。面试了7个人,大概问了20-30道题,有1道题不会,尽管
其他的都打上来了,很是郁闷,本以为自己准备的足够好了,哎。但是这道题不会,很
不甘心,希望大侠们帮助!!!
In our indexes, we have millions of URLs each of which has a link to the
page content, now, suppose a user type a query with wild cards *, which
represent 0 or multiple occcurrences of any characters, how to build the
index such that such a type of query can be executed efficiently and the
contents of all correpsonding URLs can be displayed to the users? For
example, given a query http://www.*o*ve
avatar
f*t
7
西雅图过小日子没问题,不过离开湾区就别想发财了
avatar
l*1
8
I was laughing to death when seeing these
//台湾
“你想怎样”
and this
"Hey how are you?"
"Fine thank you and you?"
哈哈

【在 l*******1 的大作中提到】
: http://www.youtube.com/watch?v=ZO5m8nwUTJY
: Credit to Joke版

avatar
n*u
9
pretty much the same, I prefer gradle because I don't want to deal with XML.
avatar
a*7
10
是不是可以先把split query into a few parts, for example, *o*ve*ou => o, ve,
ou, 然后用其中一个先query(这步可以再优化一下,比如说先用最长的一部分);
得到的结果处理一下,比如说用ou做query,得到iloveyou.com, itveabou.com,处理
后就变成了ilovey,itveab;再用ve对处理过的结果做query。。。
是个比较笨的方法,呵呵

into
a few parts, for example, *o*ve*ou => o, ve, ou, 然后分别用o, ve, ou 查询,
但是似乎不适合这道题。 另外,如果对Index里的每一个URL建suffix tree ,然后对
每个query check againgt 所有的suffix tree, 这样实际上就是scan all urls, 明显
也不合适。但是排序?我想不出来。

【在 b******7 的大作中提到】
: 刚刚on-stie面试完某大公司。面试了7个人,大概问了20-30道题,有1道题不会,尽管
: 其他的都打上来了,很是郁闷,本以为自己准备的足够好了,哎。但是这道题不会,很
: 不甘心,希望大侠们帮助!!!
: In our indexes, we have millions of URLs each of which has a link to the
: page content, now, suppose a user type a query with wild cards *, which
: represent 0 or multiple occcurrences of any characters, how to build the
: index such that such a type of query can be executed efficiently and the
: contents of all correpsonding URLs can be displayed to the users? For
: example, given a query http://www.*o*ve

avatar
r*n
11
是很难的决定。如果将来想去startup赌一把,就留。不想去startup,就走。弯曲如果
有房子,不要卖。反正一个人工作,不喜欢那里,随时还可以回来。

【在 a*****p 的大作中提到】
: 哥们最近跳槽,现在在湾区,因为有些想去Seattle,所以找工作的时候就只投了
: Google Kirkland,Amazon和Facebook,先拿到Facebook offer以后就接了。Bootcamp
: 第二星期和我mentor聊了一下,他和HR确认了可以内部调动我去Seattle office,现在
: 只要我和HR确认一下就可以开始调动流程了。不过我有点犹豫到底去不去,去Seattle
: 是个大决定。有三个主要原因我想去:1)距离老婆父母家近点,回国有直飞北京飞机
: 2)Seattle office比较小,可能上升空间比较大(只是猜想)3)房子便宜点(哎,
: loser思维)。 我30好几了,年纪不小了,老婆全职在家带孩子,国内还有老父老母。
: 实话说怕走错。跪求版上高人大牛指点,先谢谢了。

avatar
T*x
12
处理dependencies应该差不多。
但是gradle好像可以像ant一样指定一个local file system lib。
我觉得这个还是挺方便的。
比如你要做一个hadoop的java project,
lib一大堆,而且都是和你hadoop distribution相关的,
maven central repository里面的版本不一定合适。
这个时候最好指定local file system lib。
ant很容易做到,但是maven不容易。
我觉得gradle这一点和ant一样,比较方便。
maven plugin很不方便,这方面gradle应该强不少。
不过我没怎么用过gradle。

【在 u********s 的大作中提到】
: 上学时候一直用maven, 上班以后要用gradle,这两东西具体区别在哪里?
avatar
g*y
13
恭喜啊,这个表现应该能拿到卧佛吧~
avatar
t*x
14
有钱人啊,美国各个地方都留个房子还用工作

【在 r****n 的大作中提到】
: 是很难的决定。如果将来想去startup赌一把,就留。不想去startup,就走。弯曲如果
: 有房子,不要卖。反正一个人工作,不喜欢那里,随时还可以回来。

avatar
a*f
15
local library文件可以做成local repository。我们有些project的library是放在局
域网的SVN的repository。
我们有一个project用gradle,其他project都用maven,整个building和testing
process都搭建好了,集成了AWS,JIRA和SVN,基本不需要改动,也很方便。
个人prefer XML,IDE对POM管理很方便。以前用过ANT,维护起来很花时间后来就废弃
了。building tool还是喜欢越简单越多人能马上上手越好。

【在 T*******x 的大作中提到】
: 处理dependencies应该差不多。
: 但是gradle好像可以像ant一样指定一个local file system lib。
: 我觉得这个还是挺方便的。
: 比如你要做一个hadoop的java project,
: lib一大堆,而且都是和你hadoop distribution相关的,
: maven central repository里面的版本不一定合适。
: 这个时候最好指定local file system lib。
: ant很容易做到,但是maven不容易。
: 我觉得gradle这一点和ant一样,比较方便。
: maven plugin很不方便,这方面gradle应该强不少。

avatar
a*n
16
我估计他在问你grep 的Regular Expressions参数怎么写
million就是希望你不要都load到内存里去,(其实都load进去估计也就不超过200M)
具体你google grep Regular Expressions吧
avatar
r*n
17
谁让你各个地方都留了?弯曲的房子房租高,不愁卖,你不知道么?确定不回来了再卖
也不迟啊。

【在 t**x 的大作中提到】
: 有钱人啊,美国各个地方都留个房子还用工作
avatar
s*o
18
If you already use maven, it's fine to keep on using it. Otherwise, start
using gradle.
gradle is the conbination of the good parts from both maven and ant.

【在 u********s 的大作中提到】
: 上学时候一直用maven, 上班以后要用gradle,这两东西具体区别在哪里?
avatar
b*7
19
@asuran
我当时想了很多方法,实在不行了,我也是这么说的,能不能用grep,结果马上被嘲笑
了。
@geniusxsy, 能不能帮帮忙想想啊! 我觉得这个版里面,你算是最认真也最聪明的一个
了。其他人回答问题都不是没有你那么认真,一般都是很随便过一下脑子就写(我绝不
是说别人不好,其实只要写点我都非常感谢),只是从我看这版的经验,geniusxsy 是
最认真的一个。一般他提出的方法都比较efficient, 所以geniusxsy , 能不能在帮小
弟一把啊?真的是心理堵得慌。。。
avatar
z*f
20
为什么SUFFIX TREE 不行?
avatar
b*e
21
suffix tree 是干连续的, 子序列不灵.

【在 z*f 的大作中提到】
: 为什么SUFFIX TREE 不行?
avatar
b*e
22
搞个字典树(wiki trie). 如果是查字典的话(就是没有*), 就容易了, 就一个路
径.
如果*在最后, 也容易, 就是一个路径下的sub tree.
如果任意加*, 要加强trie. 每个节点不但要指向他的下一个字符, 并且要指向
所有substring里的字符. 这相当于建立了对所有url的subsequence的trie. 这
样的话search的时间就是给定pattern的长度.
avatar
g*y
23
呵呵,你太过奖了~我不过是对做题和回帖比较积极而已,呵呵。本版也还是有很多牛
人的
这题说实话我觉得是很难的。太多的情况要考虑,而且还得有合理的一些假定条件,合适的预处理和搜索技术。。。
我现在能想到的几点是,
1.对每个URL做第一步预处理,以letter为key,存下字母出现位置。这样处理后,能保证在linear时间判断一个URL是否match一个输入(验证一个数列是否部分连续/单增)
2.接下来进一步的预处理,我猜这类题的思路应该是通过二次或者多次搜索,第一次做一个简化的搜索,大幅缩小搜索范围,第二次再在缩小的范围内继续搜索。比如搜索ab*cd*ef*gh...,第一步先搜索ab*cd,获得一个缩小的范围后再进一步的搜索。
通常第一次简化的搜索是放在在预处理里面做,相当于就是事先算好答案,到时候直接获得答案就行了。
这个思路的麻烦是,我需要有合理的一些假定,比如URL的长度大多小于某个值等等,URL出现的字母具体一定的随机分布性质(这个在实际不是很成立的),然后才能确定怎么划分第一次搜索第二次搜索。另外还有要考虑一些预处理的时间限制,允许的空间资源等等。这些都是一堆的tradeo

【在 b******7 的大作中提到】
: @asuran
: 我当时想了很多方法,实在不行了,我也是这么说的,能不能用grep,结果马上被嘲笑
: 了。
: @geniusxsy, 能不能帮帮忙想想啊! 我觉得这个版里面,你算是最认真也最聪明的一个
: 了。其他人回答问题都不是没有你那么认真,一般都是很随便过一下脑子就写(我绝不
: 是说别人不好,其实只要写点我都非常感谢),只是从我看这版的经验,geniusxsy 是
: 最认真的一个。一般他提出的方法都比较efficient, 所以geniusxsy , 能不能在帮小
: 弟一把啊?真的是心理堵得慌。。。

avatar
b*7
24
@blaze
你的这个想法我在面试的时候,最后没招了,也说了,但是好像人家并不满意。我想主
要的缺点就是这样每个node非常的heavy,那么这个prefix tree的size有点exploded.
avatar
b*7
25
@geniusxsy, 对对,版上牛人是不少,可能大部分潜水(我潜水,但是我不是牛人)。
不过blaze确实也是经常提出很好的算法。Algorithmics怎么不出来了。有时候他能给
点新点子。
你的方法的思路2我很同意。就是很难找到一个合适的index organization,你的方法1
有点像给URL自己建inverted list,尽管不太一样。我记得我当时连这个也说了,好象
也不再点子上。但是你的思路2应该肯定是对的。哪位大侠救人啊!~
avatar
b*e
26
In fact, I wrote 2 posts and deleted the first one. But here was the
idea:
Build a dictionary tree with the urls, and in each node of the tree,
cache a hash table that records all the chars that appear in the sub
tree. The hash table is just the size of your alphabet. This way, if
we start to search for patterns with *, we can prune the the search
space radically, e.g., if at some nodes, we are searching for a pattern
but the hash table on the current node doesn't contain all the chars in
the

【在 b******7 的大作中提到】
: @blaze
: 你的这个想法我在面试的时候,最后没招了,也说了,但是好像人家并不满意。我想主
: 要的缺点就是这样每个node非常的heavy,那么这个prefix tree的size有点exploded.

avatar
k*e
27
it seems that suffix trie did not work. if we set up suffix tree for
separated urls, we still need to check every url for match. if we combine
the urls into a big suffix tree, then it is hard to use the tree labels for
searching.
*o*ve*ou => o, ve, ou, 然后分别用o, ve, ou 查询
I don't know why you think this did not work. I think we can extend that
idea. It is infact k-gram method in the information retrieval. for example,
2-gram of google will be go, oo, og, gl, le. We preprocess all the urls to
get i

【在 b******7 的大作中提到】
: 刚刚on-stie面试完某大公司。面试了7个人,大概问了20-30道题,有1道题不会,尽管
: 其他的都打上来了,很是郁闷,本以为自己准备的足够好了,哎。但是这道题不会,很
: 不甘心,希望大侠们帮助!!!
: In our indexes, we have millions of URLs each of which has a link to the
: page content, now, suppose a user type a query with wild cards *, which
: represent 0 or multiple occcurrences of any characters, how to build the
: index such that such a type of query can be executed efficiently and the
: contents of all correpsonding URLs can be displayed to the users? For
: example, given a query http://www.*o*ve

avatar
m*f
28
你说得对, 包括*的大范围搜索应该是一个open end question, 我觉得建trie这个
方案已经很不错了

【在 b***e 的大作中提到】
: In fact, I wrote 2 posts and deleted the first one. But here was the
: idea:
: Build a dictionary tree with the urls, and in each node of the tree,
: cache a hash table that records all the chars that appear in the sub
: tree. The hash table is just the size of your alphabet. This way, if
: we start to search for patterns with *, we can prune the the search
: space radically, e.g., if at some nodes, we are searching for a pattern
: but the hash table on the current node doesn't contain all the chars in
: the

avatar
H*M
29
I am curious.
in database, there are some matching query using "LIKE, _ %"...
for example:
select * from student
where student.name LIKE 'B_%B'
what kind of tech do they use there? isn't it very similar to this question?

【在 m*****f 的大作中提到】
: 你说得对, 包括*的大范围搜索应该是一个open end question, 我觉得建trie这个
: 方案已经很不错了

avatar
m*f
30
student table能有多大阿
在URL里search那可是千万级别的...

question?

【在 H*M 的大作中提到】
: I am curious.
: in database, there are some matching query using "LIKE, _ %"...
: for example:
: select * from student
: where student.name LIKE 'B_%B'
: what kind of tech do they use there? isn't it very similar to this question?

avatar
b*7
31
@blaze,你的树的方法有点不太适用此题,毕竟这里是URLs,不是对dictionry of
english words. 然而,从你的方法,我突然想起来我以前post的一个问题就是任意给
定几个字符,找出在字典里含有所有字符的最长的单词那道。好像你的方法(就是每个
节点存子树拥有字符)适合那个题。当时没人提出合理解法,也许你的这个解法就是那
个题的正确解?
avatar
b*7
32
@blaze,你的树的方法有点不太适用此题,毕竟这里是URLs,不是对dictionry of
english words. 然而,从你的方法,我突然想起来我以前post的一个问题就是任意给
定几个字符,找出在字典里含有所有字符的最长的单词那道。好像你的方法(就是每个
节点存子树拥有字符)适合那个题。当时没人提出合理解法,也许你的这个解法就是那
个题的正确解?
avatar
k*e
33
不是很明白你的解法,有如下问题:
For the first 7 chars in the url, we will do the full subsequence
construct. This way, the explosion is controlled within 2^7 = 128,
which is probably fine.
这个2^7是怎么来的啊?
对于使用trie,我的问题是如果开头就是*应该怎么匹配?
关于使用wildcard ? 来匹配一个字符,在algorithm on strings, trees and
sequences中有一个简单的使用suffix trie的算法,复杂度将是
km, k指?的数目,m是src string的长度
而本题是用*匹配,复杂度应该更高

【在 b***e 的大作中提到】
: In fact, I wrote 2 posts and deleted the first one. But here was the
: idea:
: Build a dictionary tree with the urls, and in each node of the tree,
: cache a hash table that records all the chars that appear in the sub
: tree. The hash table is just the size of your alphabet. This way, if
: we start to search for patterns with *, we can prune the the search
: space radically, e.g., if at some nodes, we are searching for a pattern
: but the hash table on the current node doesn't contain all the chars in
: the

avatar
S*n
34
此题 与 如下问题有什么区别啊?
.Wild card match:
4a: Pattern contains '?'(s)
4b: Pattern contains '*'(s)
4c: Pattern contains both;
如果只是用含有?和*的字符串与目标字符串比较应该不难啊

the
which
the
the
iloveyou.com, itveabcu.com, etc.
into

【在 b******7 的大作中提到】
: 刚刚on-stie面试完某大公司。面试了7个人,大概问了20-30道题,有1道题不会,尽管
: 其他的都打上来了,很是郁闷,本以为自己准备的足够好了,哎。但是这道题不会,很
: 不甘心,希望大侠们帮助!!!
: In our indexes, we have millions of URLs each of which has a link to the
: page content, now, suppose a user type a query with wild cards *, which
: represent 0 or multiple occcurrences of any characters, how to build the
: index such that such a type of query can be executed efficiently and the
: contents of all correpsonding URLs can be displayed to the users? For
: example, given a query http://www.*o*ve

avatar
R*n
35
to lz:
Lucene 里头有个 wildcard query 的实现, 你看看?
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。